今天为自己已经写的差不多的小项目添加了权限控制的拦截器,具体实现也就是,如果你登录了就可以对其中的数据操作,反之就显示出登录页面
反正就是很简单的一个小项目嘛,毕竟初学struts2,虽然简单,也遇到不少问题
开始我的拦截器是这样写的
MyInterceptor.java
package cn.du.Interceptor;
import java.util.Map;
import cn.du.util.GetSession;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class MyInterceptor extends AbstractInterceptor{
@Override
public String intercept(ActionInvocation arg0) throws Exception {
GetSession get = new GetSession();
Map session = get.getSession();
String num = (String) session.get("num");
if(num==null||num.equals("")){
return "login";
}
return "Success";
}
}
配置文件里 也对两个返回结果做了相应的配置,但是值完全没有传到Success对应的页面里边。
查了一下才知道错在 最后一个返回语句 应该是
return arg0.invoke();
表示 如果显示已经登录过的话就继续执行操作