拦截器(Interceptor)中的invocation.invoke()
来源:互联网 发布:java英语面试题 编辑:程序博客网 时间:2024/05/16 03:48
关于在Struts2的自定义的验证拦截器(Interceptor)中的invocation.invoke()是什么意思?
[java] view plaincopy
- package com.xjtu.interceptor;
- import com.opensymphony.xwork2.ActionContext;
- import com.opensymphony.xwork2.ActionInvocation;
- import com.opensymphony.xwork2.interceptor.Interceptor;
- public class PermissionInterceptor implements Interceptor {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- @Override
- public void destroy() {
- // TODO Auto-generated method stub
- }
- @Override
- public void init() {
- // TODO Auto-generated method stub
- }
- @Override
- public String intercept(ActionInvocation invocation) throws Exception {
- System.out.println("进入拦截器");
- Object user = ActionContext.getContext().getSession().get("user");
- System.out.println(user);
- if (user != null) {
- return invocation.invoke();
- }
- ActionContext.getContext().put("message", "您无权执行该操作!");
- return "success";
- }
- }
[java] view plaincopy
- package com.xjtu.soft;
- public class HelloWorldAction {
- private String message;
- public String getMessage() {
- return message;
- }
- public void setMessage(String message) {
- this.message = message;
- }
- public String execute(){
- System.out.println("执行execute");
- message = "execute";
- return "success";
- }
- public String addUI() {
- System.out.println("执行addUI");
- message = "addUI";
- return "success";
- }
- }
struts.xml配置自定义的拦截器如下:
[html] view plaincopy
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
- <struts>
- <constant name="struts.action.extension" value="do,action" />
- <constant name="struts.multipart.maxSize" value="10485760" />
- <package name="itcast" namespace="/test" extends="struts-default">
- <interceptors>
- <interceptor name="permission"
- class="com.xjtu.interceptor.PermissionInterceptor" />
- <interceptor-stack name="permissionstack">
- <interceptor-ref name="defaultStack"></interceptor-ref>
- <interceptor-ref name="permission"></interceptor-ref>
- </interceptor-stack>
- </interceptors>
- <global-results>
- <result name="success">/WEB-INF/page/message.jsp</result>
- </global-results>
- <action name="list_*" class="com.xjtu.soft.HelloWorldAction"
- method="{1}">
- <interceptor-ref name="permissionstack"></interceptor-ref>
- </action>
- </package>
- </struts>
最佳答案:
invocation.invoke() 就是通知struts2接着干下面的事情
比如 调用下一个拦截器 或 执行下一个Action
就等于退出了你自己编写的这个interceptor了
如何使用struts2拦截器,或者自定义拦截器。特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(这里我是引用了struts2自带的checkbox拦截器):
<interceptor-ref name="checkbox">
<param name="uncheckedValue">0</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
(必须加,否则出错)
转载自:http://blog.163.com/shexinyang@126/blog/static/13673931220141025391342/
0 0
- 拦截器(Interceptor)中的invocation.invoke()
- 拦截器(Interceptor)中的invocation.invoke()是什么意思?
- Struts2 拦截器中invocation.invoke()
- SpringMVC 中的Interceptor 拦截器(HandlerInteceptor)
- 拦截器(Interceptor)
- SpringMVC中的Interceptor拦截器
- SpringMVC 中的Interceptor 拦截器
- Struts2中的拦截器interceptor
- SpringMVC 中的Interceptor 拦截器
- SpringMVC 中的Interceptor拦截器
- SpringMVC 中的Interceptor 拦截器
- Struts2中的(Interceptor)拦截器的执行顺序
- Flume中的拦截器(Interceptor)介绍与使用
- EJB3拦截器(Interceptor)
- Flume拦截器(Interceptor)
- SpringMVC拦截器(Interceptor)
- Interceptor登录拦截(Spring拦截器)
- 浅谈Struts2中的拦截器,Interceptor
- Struts2拦截器 实现未登录拦截和权限控制
- windows程序设计 第5版又发现新错误
- 微动力WQ_V3.V20150311 UTF8商业版程序完整包免费下载
- struts2拦截器的实现原理及源码剖析
- struts2 session拦截器
- 拦截器(Interceptor)中的invocation.invoke()
- Section 16 Collections and Generics
- 《Java程序设计》实训每天一博文之第四天
- 使用struts2拦截器,对session失效的校验
- gradle DSL method not found: android()错误解决办法
- CreateDIBitmap与CreateDIBSection
- Codeforces#86D Powerful array(分块暴力)
- Jquery命名冲突解决的五种方案
- Can't create table './store/#sql-b2c_1a.frm' (errno: 150)解决方法