当前位置:首页 > 开发 > 编程语言 > Struts2 > 正文

Struts2添加拦截器

发表于: 2013-11-07   作者:为了明天而努力   来源:转载   浏览:
摘要: Struts2添加拦截器 1.struts.xml的配置 <!-- 后台拦截器 --> <package name="authpkg" extends="struts-default" namespace=""> <interceptors> <!-- 定义拦截器 -->

Struts2添加拦截器

1.struts.xml的配置

<!-- 后台拦截器 -->
	<package name="authpkg" extends="struts-default" namespace="">
		<interceptors>
			<!-- 定义拦截器 -->
			<interceptor name="authority" class="com.syxp.yjxx.core.auth.AuthorityInterceptor" />
			<!-- 定义拦截器栈 -->
			<interceptor-stack name="authStack">
				<!-- 将拦截器加入默认的拦截器栈中 -->
				<interceptor-ref name="authority">
					<!-- 定义不使用拦截器的方法 -->
					<param name="excludeMethods">login</param>
				</interceptor-ref>
				<interceptor-ref name="defaultStack"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="authStack" />
		<!-- 定义拦截器的全局变量,跳转路径 -->
		<global-results>
			<result name="login" type="redirect">/index.jsp</result>
		</global-results>
	</package>

 2. 拦截器类com.syxp.yjxx.core.auth.AuthorityInterceptor

/**
 * AuthorityInterceptor.java
 * 
 * 功能:登录验证拦截器
 * 类名:AuthorityInterceptor
 * 
 *   ver     			变更日                    	部门               	开发者     			变更内容
 * ─────────────────────────────────────────────────────
 *   V1.00  		2013-11-07          	研发部	         常宝龙          		初版
 *   
 *   Copyright (c) 2008, 2013 Infopower corporation All Rights Reserved.
 */
package com.syxp.yjxx.core.auth;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

/**
 * 登录验证拦截器
 * 
 * @author 常宝龙
 * @version Ver 1.0 2013-11-07 新建
 * @since CodingExample Ver 1.0
 * 
 */
public class AuthorityInterceptor extends MethodFilterInterceptor{
	
	private static final long serialVersionUID = 3457293729347L;

	@Override
	protected String doIntercept(ActionInvocation actionInvocation) throws Exception {
		Object user = actionInvocation.getInvocationContext().getSession().get("user2");
		if(user!=null){
			//递归调用拦截器
			return actionInvocation.invoke();
		}else{
			return Action.LOGIN;
		}
	}
}

 3.xml文件中配置好后,需要在其他的action中调用这个拦截器,调用方法如下:

<!-- 报表图(辽宁电网受暴雨影响情况) -->
	<package name="stormReport" namespace="/stormReport" extends="authpkg">
</package>

 在extends选择集成拦截器的包

Struts2添加拦截器

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
包中的拦截器(可以拦截package中的所有的action) 如果某一个action中已经有了一个拦截器,那么pac
1、Struts2中使用拦截器来扩展Action的功能,往往是用来处理Action之间通用的事务,比如:记录日志
1、Struts2实现原理: 当请求到达Struts 2的ServletDispatcher时,Struts 2会查找配置文件,并根据
1. 理解拦截器 1.1. 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方
转自:http://www.blogjava.net/zhoumiao0123/archive/2008/08/10/221088.html 本文为本人翻译strut
在Action前用拦截器是直接return act.invoke()。只要把收尾操作放到act.invoke()和return result;之
在之前的文章中,我们已经涉及到了拦截器(Interceptor)的概念。 downpour 写道 拦截器是AOP中的概
转自http://blog.csdn.net/qjyong/article/details/1824607 Struts2 拦截器 (Interceptor) ++YONG
Struts2拦截器 Struts2拦截器(Interceptor) ++YONG原创,转载请注明 1. 理解拦截器 1.1. 什么是拦截
1、Struts2实现原理: 当请求到达Struts 2的ServletDispatcher时,Struts 2会查找配置文件,并根据
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号