Struts加入拦截器后取不到页面参数
2016-07-09 00:00
531 查看
在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>
这也是很蛋疼的事情,还好这个比较简单,稍微一查就发现问题:
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>
相关文章推荐
- 深入了解java泛型
- eclipse中maven项目交付svn忽略配置文件
- [javaEE] 数据库连接池和动态代理
- java的未来需要掌控者
- java反射的理解
- java static关键字应用
- javaweb中action、service、model、dao层如何区分
- RxJava 并发之线程调度
- SpringMVC框架原理图
- 解决eclipse的自动换行问题
- java 日期处理工具类 DateUtil
- 方法反射
- RxJava 驯服数据流之自定义操作函数
- Eclipse搭建Java Swing可视化开发环境
- Java中Volatile关键字详解
- JAVA 菜单设置快捷键
- Eclipse常用快捷键
- C#调用Java方法
- HDU-4919-数学推导加Java大数
- java web 开发 购物车功能的实现