Struts拦截器使用

来源:互联网 发布:淘宝假冒品牌处罚 编辑:程序博客网 时间:2024/05/22 14:42
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constant name="struts.action.extension" value="action,do,,"/><!-- 执行的拓展 -->   <constant name="struts.configuration.xml.reload" value="true"/><!-- xml配置自动重载 -->   <constant name="struts.enable.DynamicMethodInvocation" value="true"/><!-- 感叹号、冒号可以使用 -->   <constant name="struts.multipart.maxSize" value="10240000"></constant>   <!-- 表示Action由Spring来进行创建,可以直接使用Spring依赖注入来注入 -->   <constant name="struts.objectFactory" value="spring" /><!-- <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> -->       <package name="default" namespace="/" extends="struts-default">       <strong><span style="color:#FF0000;"><!-- 权限拦截器 -->    <interceptors>    <interceptor name="authInterceptor" class="authInterceptor"/>    <interceptor-stack name="authStack">    <interceptor-ref name="defaultStack"/>    <interceptor-ref name="authInterceptor"/>    </interceptor-stack>    </interceptors></span></strong>            <!-- 全局结果集 就是公共的结果集,所有Action只要找到相应的返回值,就会来相应的全局结果集找结果-->    <global-results>    <result name="error">/WEB-INF/jsp/inc/error.jsp</result>    <result name="login">/WEB-INF/jsp/login.jsp</result>    <result name="exception">/WEB-INF/jsp/inc/exception.jsp</result>    </global-results>    <!-- 定义异常处理界面 -->    <global-exception-mappings>    <exception-mapping result="exception" exception="org.test.ssh.exception.DocumentException"/>    </global-exception-mappings>        <action name="login" class="loginAction">    <result type="redirect" name="redirect">${url}</result>    </action><!-- 基于通配符的方式 --><!-- User_add --><action name="*_*" class="{1}Action" method="{2}"><result>/WEB-INF/jsp/{1}/{2}.jsp</result><result name="input">/WEB-INF/jsp/{1}/{2}Input.jsp</result><result type="redirect" name="redirect">${url}</result><span style="color:#FF0000;"><strong><interceptor-ref name="authStack"/></strong></span></action>    </package></struts><span style="font-size:32px;color:#FF0000;"><strong></strong></span>

下面是拦截器的代码:

<span style="font-size:18px;">package org.test.ssh.filter;import org.springframework.stereotype.Component;import org.test.ssh.model.User;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.AbstractInterceptor;/** * 用struts拦截器做权限控制,这个方法不常用,一边用filter就能控制好了。 * @author asus_n56 * */@SuppressWarnings("serial")@Component("authInterceptor")public class AuthInterceptor extends AbstractInterceptor {@Overridepublic String intercept(ActionInvocation invocation) throws Exception {String an = invocation.getProxy().getActionName();//获取Action的名字if (!an.startsWith("login")) {User loginUser = (User)ActionContext.getContext().getSession().get("loginUser");if (loginUser==null) {return "login";}}return invocation.invoke();}}</span>


0 0