Struts加入攔截器后取不到頁面參數


在Struts2的demo項目中添加了一個簡單的攔截器,突然發現,Action中取不到頁面的參數了

這也是很蛋疼的事情,還好這個比較簡單,稍微一查就發現問題:

Struts2中很多的功能是用攔截器實現的,比如:取得表單參數,文件上傳,異常處理等

Struts2會默認調用默認的攔截器,默認攔截器配置在struts-default.xml中可以查看

如果在配置文件中加入了自定義的攔截器,那默認的攔截器就不會起作用,在Action中就不能取得表單的參數

這個時候,就需要顯試的調用默認的攔截器(defaultStack)

配置如下:

<action name="LoginAction" method="login" class="com.venn.action.LoginAction">
<result>/jsp/success.jsp</result>
<result name="input">/jsp/login.jsp</result>

  <interceptor-ref name="defaultStack"/>  <!--注意順序,先調用默認的攔截器-->
  <interceptor-ref name="myDefault"/>
</action>

也可以使用攔截器棧:

<struts>

<package name="default" namespace="/" extends="struts-default">

<!-- login interceptor -->
<interceptors>
    <interceptor name="timerInterceptor" class="com.venn.interceptor.TimerInterceptor"></interceptor>
    <interceptor-stack name="myDefault">
      <interceptor-ref name="defaultStack"/>
      <interceptor-ref name="timerInterceptor"/>
    </interceptor-stack>
</interceptors>
<default-action-ref name="index"></default-action-ref>
<action name="index">
<result>/jsp/error.jsp</result>
</action>
<action name="LoginAction" method="login" class="com.venn.action.LoginAction">
<result>/jsp/success.jsp</result>
<result name="input">/jsp/login.jsp</result>
<interceptor-ref name="myDefault"/>
</action>
</package>
</struts>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM