浏览 1856 次
锁定老帖子 主题:struts2拦截器
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-05
public class UserAction extends ActionSupport { private String username; private String userpsw; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUserpsw() { return userpsw; } public void setUserpsw(String userpsw) { this.userpsw = userpsw; } @Override public String execute() throws Exception { System.out.println("--------------------进入executeMethod------------------------------"); return "success"; } public String login() { System.err.println("--------------进入login方法---------------------------------"); return "success"; } public void validateLogin() { System.err.println("-----------------进行数据验证-----------------------"); if (username.trim().length()==0) { addFieldError(username, "用户名不能为空"); } if(userpsw.trim().length()==0) { addFieldError(userpsw, "密码不能为空"); } } } import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; //这个类拦截action所有的方法 public class UserInterceptor extends AbstractInterceptor { //用户拦截器 在这里可以得到action 也可以得到actioncontent @Override public String intercept(ActionInvocation arg0) throws Exception { // System.out.println("-----------------------执行拦截器啦--------------------------------------------------"); UserAction user = (UserAction) arg0.getAction(); if(user.getUsername().equals("admin")) { return "success"; }else { return "input"; } } } import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; //这个类对指定的方法进行拦截,可以过滤方法 /** * 用这个类的时候一定要配置如下两个属性 * void setExcludeMethods(String excludeMethods) 不需要拦截的方法 * void setIncludeMethods(String includeMethods) 要拦截的方法 * * */ public class MethodFilterInterceptorDemo extends MethodFilterInterceptor { @Override protected String doIntercept(ActionInvocation arg0) throws Exception { // System.out.println("--------------进入方法过滤器--------------------------"); UserAction ua = (UserAction) arg0.getAction(); if (ua.getUsername().equals("admin")&&ua.getUserpsw().equals("admin")) { arg0.invoke(); } return "input"; } } <?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.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <!-- <interceptors> <interceptor name="userinterceptor" class="UserInterceptor"></interceptor> <interceptor-stack name="user"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="userinterceptor"></interceptor-ref> </interceptor-stack> </interceptors> --> <interceptors> <interceptor name="userinterceptor" class="MethodFilterInterceptorDemo"></interceptor> <interceptor-stack name="user"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="userinterceptor"> <!-- 不需要被过滤的方法 --> <param name="excludeMethods">execute,login</param> <!-- 指定action里面需要被过滤的方法 --> <param name="includeMethods">login</param> </interceptor-ref> </interceptor-stack> </interceptors> <action name="login" class="UserAction" method="login"> <interceptor-ref name="user"></interceptor-ref> <result name="success">success.jsp</result> <result name="input">index.jsp</result> </action> </package> </struts> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |