zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    android Scroller类的理解
    android 小方法
    android 小知识点
    【转】Android TouchEvent事件传递机制
    android 自定义控件二之仿QQ长按删除
    android ExpandAbleListView控件
    android AChartEngine图标引擎
    2018.11.07-1117-无序字母对 character
    2018.11.07-4031-reverse
    2018.11.07-1015-幸运字符串查询 (lucky)
  • 原文地址:https://www.cnblogs.com/Springmoon-venn/p/5585606.html
Copyright © 2011-2022 走看看