struts拦截器使用
创建拦截器类
public class MyIntercept extends MethodFilterInterceptor {
@Autowired
RolePrivilegeService rolePrivilegeService
;
@Override
protected String
doIntercept(ActionInvocation actionInvocation
) throws Exception
{
User user
=(User
)ServletActionContext
.getRequest().getSession().getAttribute("SYS_USER");
List
<String> privilegeList
= rolePrivilegeService
.findByUid(user
);
if (privilegeList
!= null
){
for (String privilege
:privilegeList
){
if ("nsfw".equals(privilege
)){
return actionInvocation
.invoke();
}
}
}
return "false";
}
}
拦截器注册
在对应的package中注册拦截器
<interceptors>
<interceptor name="MyIntercept" class="com.dsm.intercept.MyIntercept">
<param name="includeMethods">nsfw_frame
</param>
</interceptor>
<interceptor-stack name="MyInterceptStack">
<interceptor-ref name="MyIntercept"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
在action中添加拦截器
<action name="*_*" class="com.dsm.action.NsfwAction" method="{1}_{2}">
<result name="success">/WEB-INF/jsp/{1}/{2}.jsp
</result>
<result name="false">/WEB-INF/jsp/noPermissionUI.jsp
</result>
<interceptor-ref name="MyInterceptStack"></interceptor-ref>
</action>