struts.xml
<struts>
<package name="myPackage" extends="json-default" namespace="/tools">
<interceptors>
<!-- 权限控制拦截器 -->
<interceptor name="authority"
class="com.report.common.action.interceptor.MyInterceptor" />
<interceptor-stack name="mydefault">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="authority" />
</interceptor-stack>
</interceptors>
<!-- 定义默认的拦截器 -->
<default-interceptor-ref name="mydefault" />
<global-results>
<result name="login">/page/common/login.jsp</result>
</global-results>
<action name="login" class="LoginAction" method="login">
<result name="success">/page/reportManager.jsp</result>
</action>
<action name="search" class="ReportManagerAction" method="search">
<result name="success">/page/reportManager.jsp</result>
</action>
<action name="del" class="ReportManagerAction" method="del">
<result name="success">/page/reportManager.jsp</result>
</action>
</package>
</struts>
MyInterceptor.java
public class MyInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 9189629336555922574L;
@Override
public String intercept(ActionInvocation invocation) throws Exception {
Map session = invocation.getInvocationContext().getSession();
String actionName = invocation.getProxy().getActionName();
if("login".equals(actionName)){
return invocation.invoke();
}
String userId = (String)session.get("userId");
if(userId == null || userId.equals("")){
ServletActionContext.getRequest().setAttribute("nologin", "您尚未登录,请登录后再进行其他操作!");
return "login";
}else{
return invocation.invoke();
}
}
}