自定义拦截器(难点)

一、要实现自定义拦截器就要实现

1、com.opensympony.xwork2.interceptor.Interceptor接口:

public class Permission implements Interceptor{
    @Override
    public void destroy() {     
    }

    @Override
    public void init() {        
    }

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        System.out.println("进入拦截器!");
        if (ActionContext.getContext().getSession().get("user") != null) {
            return invocation.invoke();
        } else {
            ActionContext.getContext().put("message", "您还没有登录!");
            }
        return "message";
    }
    
}

2、如果你想对某个Action里面的一些方法进行拦截可以在配置文件下做如下配置:
(注:该配置用了intereptorStack,将Struts2框架默认的拦截器和自定义的拦截器放在 栈里面)

             
            
            
            
                
                
                
            
         

3、当访问该Action的任意放方法都会进入拦截器的配置:


            /WEB-INF/index.jsp
            
         

4、cn.itcast.action.LoginAction下的方法:

public String execute() {
        this.message = "execute";
        return "message";
    }

    public String login() throws IOException {
        String filePath = ServletActionContext.getServletContext().getRealPath("/image");
        System.out.println(filePath);
        if (images != null) {
            File file = new File(filePath);
            if (!file.exists()) {
                file.mkdirs();
            }
            System.out.println(images.length);
            for (int i = 0; i < images.length; i++) {
                File toSave = new File(file, imagesFileName[i]);
                FileUtils.copyFile(images[i], toSave);
            }
        }
        this.message = "login";
        return "message";
    }

你可能感兴趣的:(自定义拦截器(难点))