【坑】使用拦截器跳转Action无法获取到传递过来的参数
来源:互联网 发布:足下软件学院校长 编辑:程序博客网 时间:2024/05/20 09:06
原因(其实这个原因我也不是很懂):在strust.xml中,如果是默认的package的话,会默认使用<interceptor-ref name="defaultStack"></interceptor-ref>,就会造成这样。
解决的办法:使用拦截器栈,栈中实现了<interceptor-ref name="defaultStack"></interceptor-ref>和你自己定义的拦截器,之后以拦截器栈的名字使用的为action设置拦截器
以下示例的作用是,实现自己的拦截器checkUserInte作为默认的拦截器
<interceptors><interceptor-stack name="checkUser"><interceptor-ref name="checkUserInte"></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref></interceptor-stack><interceptor name="checkUserInte" class="com.wx.wx.inte.CheckUser"></interceptor></interceptors><default-interceptor-ref name="checkUser"></default-interceptor-ref>
这样就可以在当前包中所有的action都添加个拦截器,这个拦截器的类就是com.wx.wx.inte.CheckUser
在这个类里面我是这样写的
public class CheckUser extends AbstractInterceptor {@Overridepublic String intercept(ActionInvocation invocation) throws Exception {// TODO Auto-generated method stubHttpSession session = AppTool.getSession();//只有获取验证码、用户登录和用户注册可以不做验证if(invocation.getAction().getClass() == GetCode.class || invocation.getAction().getClass() == Register.class ||invocation.getAction().getClass() == Login.class) {return invocation.invoke();} else if(session.getAttribute("user") != null){//用户已经登录return invocation.invoke();} else {System.out.println("跳转到主页");return Action.LOGIN;}}}
其中的if是判断当前拦截的action是不是不需要拦截,如果是就直接invoke()调用action,如果当前用户已经登录(session中会有user参数,这里的session不是Map的哦)也放行,如果没有登录就返回一个Action.Login来跳转到登录页面,在这里Action.Login就是login如果要它跳转到某一个result的话,就需要在global-results中写一个result,我是这样写的
<global-results><result name="login" type="redirect">/index.jsp</result></global-results>
这个result中不加type="redirect"的话貌似会不能跳转,我这边就是这样的。这样当return Action.Login时就会跳转到index.jsp文件下了
0 0
- 【坑】使用拦截器跳转Action无法获取到传递过来的参数
- Struts2 自定义拦截器时Action无法接收到参数
- JS获取Url传递过来的参数
- Struts2 使用annotation从action跳转到action并传递参数
- struts2中的Action接收表单传递过来的参数
- JSP页面获取action传递过来的值
- Spring MVC无法获取到页面表单put过来的参数的解决方案
- Struts2 使用拦截器后参数无法传递问题的解决
- Struts2整合Spring无法获取到网页传过来的参数
- 登录页面在输入了正确的用户名和密码后仍跳转到登录页面而不是期望的系统首页面,debug的时候发现,登录页面调用的action类方法被调用了两次,后台无法获取前台页面传过来的参数。
- struts2的拦截器无法跳转到jsp页面
- $_POST无法获取curl传递过来的数据问题
- JS获取URL传递过来的参数值
- JS框架 获取页面传递过来的参数
- 获取另一个页面传递过来的参数值
- jsp中的参数无法传递到action中的解决办法。
- JavaScript获取页面跳转传递的参数
- webwork_解决action跳转到action丢失参数的问题
- NOJ-2076-天神小学-典型BFS题型
- uvaoj384最优矩阵链乘(详解 + 思考 + 记忆化搜索 + 递推 )
- Quick_触摸事件
- 如何将linux虚拟机和主机之间连接
- 如何去掉listview headview的 divider
- 【坑】使用拦截器跳转Action无法获取到传递过来的参数
- hdu4292Food(网络流裸题)
- 批量图片格式转化
- 点击 某个字段 ----------弹出div
- hadoop学习一
- 通信总线-IIC
- iOS 国际化语言
- 常用查找算法
- oracle sql语句查询时 表名和字段名要加双引号的问题详解,oraclesql