struts2 注解配置拦截器 实例

/**
 *
 */
package com.wonders.stpt.contractReview.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.opensymphony.xwork2.ModelDriven;
import com.wonders.stpt.contractReview.model.bo.WorkflowActivity;
import com.wonders.stpt.contractReview.model.vo.ContractReviewVo;
import com.wonders.stpt.contractReview.service.ContractReviewService;
import com.wonders.stpt.contractReview.util.ContractReviewUtil;
import com.wonders.stpt.core.login.entity.vo.TaskUserVo;
import com.wonders.stpt.page.model.PageInfo;
import com.wonders.stpt.page.model.PageResultSet;
import com.wonders.stpt.util.ActionWriter;
import com.wonders.stpt.util.StringUtil;

/**
 * @ClassName: ContractReviewAction
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author zhoushun
 * @date 2013-6-9 上午9:37:12
 *
 */
@ParentPackage("custom-default")
@Namespace(value="/contractReview")
@Controller("contractReviewAction")
@Scope("prototype")
public class ContractReviewAction extends AbstractParamAction implements ModelDriven<ContractReviewVo>{
	/**
	 *
	 */
	private static final long serialVersionUID = 1631323544896056619L;
	private ActionWriter aw = new ActionWriter(response);
	private ContractReviewVo vo = new ContractReviewVo();
	private ContractReviewService service;
	public ContractReviewService getService() {
		return service;
	}
	@Autowired(required=false)
	public void setService(@Qualifier("contractReviewService")ContractReviewService service) {
		this.service = service;
	}

	@SuppressWarnings({ "unchecked"})
	@Action(value="todoList",results={
			@Result(name="success",location="/contractReview/todoList.jsp")
			},
		<span style="color:#ff6666;"><strong>	interceptorRefs = {@InterceptorRef(value = "mydefault")}  )</strong></span>
	// 拦截器  

	public String todoItemList(){
		String loginNames = "";
		Map<String, TaskUserVo> userMap =
				(Map<String, TaskUserVo>)this.request.getSession().getAttribute("deptUsers");
		for(Map.Entry<String, TaskUserVo> entry : userMap.entrySet()){
			loginNames += "‘"+StringUtil.getNotNullValueString(entry.getKey()) +"‘"+",";
		}
		if(loginNames.length() > 0){
			loginNames = loginNames.substring(0, loginNames.length()-1);
		}
		String contract_name = this.request.getParameter("contract_name");
		String contract_identifier = this.request.getParameter("contract_identifier");
		String contract_money_type_id = this.request.getParameter("contract_money_type_id");
		String contract_type1_id = this.request.getParameter("contract_type1_id");
		String contract_type2_id = this.request.getParameter("contract_type2_id");
		String contract_moneyLt = this.request.getParameter("contract_moneyLt");
		String contract_moneyGt = this.request.getParameter("contract_moneyGt");
		String project_charge_dept = this.request.getParameter("project_charge_dept");
		String contract_group_id = this.request.getParameter("contract_group_id");
		String purchase_type_id = this.request.getParameter("purchase_type_id");
		String[] kpi_controls = this.request.getParameterValues("kpi_control");
		String kpi_control = "";
		if(kpi_controls != null && kpi_controls.length > 0){
			for(String temp : kpi_controls){
				kpi_control += temp + ",";
			}
			kpi_control = kpi_control.substring(0, kpi_control.length()-1);
		}

		this.request.setAttribute("contract_name", contract_name);
		this.request.setAttribute("contract_identifier", contract_identifier);
		this.request.setAttribute("contract_money_type_id", contract_money_type_id);
		this.request.setAttribute("contract_type1_id", contract_type1_id);
		this.request.setAttribute("contract_type2_id", contract_type2_id);
		this.request.setAttribute("contract_moneyLt",contract_moneyLt);
		this.request.setAttribute("contract_moneyGt", contract_moneyGt);
		this.request.setAttribute("project_charge_dept", project_charge_dept);
		this.request.setAttribute("contract_group_id", contract_group_id);
		this.request.setAttribute("purchase_type_id", purchase_type_id);
		this.request.setAttribute("kpi_control", kpi_control);

		int totalRows = this.service.countTodo(contract_name,contract_identifier,
				contract_money_type_id, contract_type1_id,
				contract_type2_id, contract_moneyLt,
				contract_moneyGt, project_charge_dept,
				contract_group_id, purchase_type_id,
				kpi_control,loginNames);
		PageInfo pageinfo = new PageInfo(totalRows, vo.pageSize, vo.page);
		List<Object[]> list = this.service.findTodoByPage(pageinfo.getBeginIndex(), vo.pageSize,
				contract_name,
				contract_identifier,
				contract_money_type_id, contract_type1_id,
				contract_type2_id, contract_moneyLt,
				contract_moneyGt, project_charge_dept,
				contract_group_id, purchase_type_id,
				kpi_control,loginNames);
		//System.out.println("list.size======"+list.size());
		PageResultSet<Object[]> result  = new PageResultSet<Object[]>();
		result.setList(list);
		result.setPageInfo(pageinfo);
		this.request.setAttribute("result", result);

		return "success";
	}

	/**
	* @Title: getModel
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @return    设定文件
	* @throws
	*/
	@Override
	public ContractReviewVo getModel() {
		// TODO Auto-generated method stub
		return vo;
	}

}

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="custom-default" extends="struts-default">
 <!-- 定义一个拦截器 -->
        <interceptors>
            <interceptor name="authority"
                class="com.wonders.stpt.contractReview.interceptor.AuthInterceptor">
            </interceptor>
            <!-- 拦截器栈 -->
            <interceptor-stack name="mydefault">
            	<interceptor-ref name="authority" />
                <interceptor-ref name="defaultStack" />  

            </interceptor-stack>
        </interceptors>
      </package>
	<constant name="struts.objectFactory.spring.autoWire.alwaysRespect" value="true"/>
	<constant name="struts.multipart.maxSize" value="25242880" />
	<constant name="struts.custom.i18n.resources" value="fileUpload"></constant>
</struts>

过滤器:

/**
* @Title: AuthInterceptor.java
* @Package com.wonders.stpt.contractReview.interceptor
* @Description: TODO(用一句话描述该文件做什么)
* @author zhoushun
* @date 2014年8月8日 下午3:25:49
* @version V1.0
*/
package com.wonders.stpt.contractReview.interceptor;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.wonders.stpt.core.login.constant.LoginConstant;

/**
 * @ClassName: AuthInterceptor
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author zhoushun
 * @date 2014年8月8日 下午3:25:49
 *
 */
public class AuthInterceptor extends AbstractInterceptor{

	/**
	* @Title: intercept
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param arg0
	* @param @return
	* @param @throws Exception    设定文件
	* @throws
	*/
	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		   // 取得请求相关的ActionContext实例
        String result = "";
		ActionContext ctx = invocation.getInvocationContext();
        Map session = ctx.getSession();
        String user = (String) session.get(LoginConstant.STPT_SECURITY_LOGIN_NAME);
        t("begin");

        if (user != null && "G00100000123".equals(user)) {
            result = invocation.invoke();
        }  else{
        	result = "error";
        }
        t("end");
        return result;
	}

	private void t(String s){
		System.out.println(s);
	}
}

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

原文地址:https://www.cnblogs.com/skinchqqhah/p/10351449.html

时间: 2024-12-11 01:36:20

struts2 注解配置拦截器 实例的相关文章

Struts2自己定义拦截器实例—登陆权限验证

版本号:struts2.1.6 此实例实现功能:用户须要指定username登陆,登陆成功进入对应页面运行操作,否则返回到登陆页面进行登陆,当直接訪问操作页面(登陆后才干訪问的页面)时则不同意,须返回登陆页面. 代码例如以下: 一.页面 login.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUB

struts2注解使用拦截器interceptor和interceptor-stack

<!-- pc用户中心操作,必须登录 --> <package name="user_login" namespace="/"  extends="json-default,struts-default"> <interceptors>     <interceptor name="ress" class="com.common.interceptor.ErrorInterc

springCloud+自定义注解+自定义配置拦截器

案例 在一个分布式服务中,有多个服务,每个服务定义的拦截器和路径都不相同,为了解决以下问题:1.每个服务定义的拦截器不一致2.每个拦截器定义的拦截和非拦截的路径不能定制化 为了解决上面2个问题,采用注解+自定义配置,即可实现统一风格的自定义拦截器. 方案 1.实现一个注解WebInterceptorPathPattern 2.将带有注解的拦截器自动注入容器 3.自定义拦截器 4.验证结果 原文地址:https://blog.51cto.com/janephp/2443256

Struts2内置拦截器的简要介绍

标记有(*)要着重了解: (1)alias(别名拦截器):允许参数在跨越多个请求时使用不同别名,该拦截器可将多个Action采用不同名字链接起来,然后用于处理同一信息. (2)autowiring(自动装配拦截器):主要用于当Struts2和Spring整合时,Struts2可以使用自动装配的方式来访问Spring容器中的Bean. (3)(*)chain(链拦截器):构建一个Action链,使当前Action可以访问前一个Action的请求信息,一般和<result type="chai

struts2中的拦截器

一  AOP思想: 面向切面编程的思想 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. AOP 是一个概念,一个规范,本身并没有设定具体语言的实现,这实际

struts2内置拦截器和自定义拦截器详解(附源码)

一.Struts2内置拦截器 Struts2中内置类许多的拦截器,它们提供了许多Struts2的核心功能和可选的高级特 性.这些内置的拦截器在struts-default.xml中配置.只有配置了拦截器,拦截器才可以正常的工作和运行.Struts 2已经为您提供丰富多样的,功能齐全的拦截器实现.大家可以至struts2的jar包内的struts-default.xml查看关于默认的拦截器与 拦截器链的配置.内置拦截器虽然在struts2中都定义了,但是并不是都起作用的.因为并不是所有拦截器都被加

struts2入门之拦截器

1.拦截器的执行时间:在action对象创建之后,在具体的方法执行之前: 2.拦截器底层实现原理:用到AOP思想和责任链模式:AOP:面向切面编程,通俗的讲就是当某个功能模块要增加某一项功能时,尽可能不去修改源代码而是通过其他的方式来达到相同的效果,比如通过配置文件等方式:责任链模式和过滤链模式有点相似,过滤链模式是指比如,一个请求由多个过滤器进行过滤,每个过滤器进行放行之后才能到下一个过滤器,最后实现目的:但是责任链模式,比如要执行多个操作,有添加,修改,删除三个操作,首先执行添加操作,添加操

Struts2(十四)拦截器实现权限管理

一.认识拦截器 拦截器也是一个类 拦截器可以在Action被调用之前和之后执行代码 框架很多核心功能是拦截器实现的 拦截器的特点: 拦截器自由组合,增强了灵活性.扩展性.有利于系统解耦 拦截器可以拦截Action请求 在访问的Action执行之前和执行之后执行代码实现某项功能 Struts2: 大部分功能是在拦截器中实现的如:接收输入的参数,数据验证,文件上传,国际化等 应用程序: 需要在Action执行的前后执行特定功能 Action执行时间统计,Action访问权限管理 Action添加功能

struts2自定义登录拦截器

版权声明:本文为博主原创文章,未经博主允许不得转载. (1)配置web.xml,让xml加载struts2框架 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSche