当前位置: 代码迷 >> 综合 >> struts2自定义拦截器的实现及使用
  详细解决方案

struts2自定义拦截器的实现及使用

热度:81   发布时间:2023-10-26 09:20:52.0

import org.apache.struts2.ServletActionContext;import com.delicious.entity.Users;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
//检查用户是否登陆&&是不是管理员身份
//继承拦截器AbstractInterceptor抽象类或者实现Interceptor接口
public class SecurityInterceptor extends AbstractInterceptor {private static final long serialVersionUID = 1L;@Overridepublic String intercept(ActionInvocation invocation) throws Exception {Users user = (Users) ServletActionContext.getContext().getSession().get("user");if (user == null) {return "error";}else if (!user.getIsAdmin()) {return "error";}else {return invocation.invoke();}}}
//struts.xml文件
//其中红色部分是对拦截器的配置
//粗体部分为拦截器的使用
<package name="admin" namespace="/admin" extends="struts-default"><interceptors><interceptor name="security"class="com.delicious.interceptor.SecurityInterceptor"></interceptor><interceptor-stack name="sshValueStack"><interceptor-ref name="security" /><interceptor-ref name="paramsPrepareParamsStack"><param name="alwaysInvokePrepare">false</param></interceptor-ref></interceptor-stack></interceptors><default-interceptor-ref name="sshValueStack"></default-interceptor-ref><global-results><result name="error" type="redirectAction"><param name="actionName">error</param><param name="namespace">/</param></result></global-results><action name="foods-*" class="adminFoodsAction" method="{1}"><interceptor-ref name="fileUpload"><param name="maximumSize ">10485760</param><param name="allowedExtensions ">jpg,png,gif</param></interceptor-ref><interceptor-ref name="sshValueStack" /><result name="list">/admin/foods_list.jsp</result><result name="save" type="redirectAction">foods-list</result><result name="edit">/admin/foods_input.jsp</result><result name="delete" type="redirectAction">foods-list</result><result name="input" type="redirectAction">foods-list</result></action><action name="messages-*" class="adminMessagesAction" method="{1}"><result name="list">/admin/messages_list.jsp</result><result name="*" type="redirectAction">messages-list</result></action></package>





  相关解决方案