struts2 註解配置攔截器 實例

  1. /**
  2. *
  3. */ 
  4. package com.wonders.stpt.contractReview.action; 
  5.  
  6.  
  7. import java.util.ArrayList; 
  8. import java.util.HashMap; 
  9. import java.util.List; 
  10. import java.util.Map; 
  11.  
  12. import org.apache.struts2.convention.annotation.Action; 
  13. import org.apache.struts2.convention.annotation.InterceptorRef; 
  14. import org.apache.struts2.convention.annotation.InterceptorRefs;
  15. import org.apache.struts2.convention.annotation.Namespace; 
  16. import org.apache.struts2.convention.annotation.ParentPackage; 
  17. import org.apache.struts2.convention.annotation.Result; 
  18. import org.springframework.beans.factory.annotation.Autowired; 
  19. import org.springframework.beans.factory.annotation.Qualifier; 
  20. import org.springframework.context.annotation.Scope; 
  21. import org.springframework.stereotype.Controller; 
  22.  
  23. import com.opensymphony.xwork2.ModelDriven; 
  24. import com.wonders.stpt.contractReview.model.bo.WorkflowActivity;
  25. import com.wonders.stpt.contractReview.model.vo.ContractReviewVo; 
  26. import com.wonders.stpt.contractReview.service.ContractReviewService; 
  27. import com.wonders.stpt.contractReview.util.ContractReviewUtil; 
  28. import com.wonders.stpt.core.login.entity.vo.TaskUserVo; 
  29. import com.wonders.stpt.page.model.PageInfo; 
  30. import com.wonders.stpt.page.model.PageResultSet; 
  31. import com.wonders.stpt.util.ActionWriter; 
  32. import com.wonders.stpt.util.StringUtil; 
  33.  
  34.  
  35. /**
  36. * @ClassName: ContractReviewAction
  37. * @Description: TODO(這裏用一句話描述這個類的作用)
  38. * @author zhoushun
  39. * @date 2013-6-9 上午9:37:12
  40. */ 
  41. @ParentPackage("custom-default"
  42. @Namespace(value="/contractReview"
  43. @Controller("contractReviewAction"
  44. @Scope("prototype"
  45. public class ContractReviewAction extends AbstractParamAction implements ModelDriven<ContractReviewVo>{ 
  46.     /**
  47.      *
  48.      */ 
  49.     private static final long serialVersionUID = 1631323544896056619L; 
  50.     private ActionWriter aw = new ActionWriter(response); 
  51.     private ContractReviewVo vo = new ContractReviewVo(); 
  52.     private ContractReviewService service; 
  53.     public ContractReviewService getService() { 
  54.         return service; 
  55.     } 
  56.     @Autowired(required=false
  57.     public void setService(@Qualifier("contractReviewService")ContractReviewService service) { 
  58.         this.service = service; 
  59.     } 
  60.      
  61.      
  62.     @SuppressWarnings({ "unchecked"}) 
  63.     @Action(value="todoList",results={ 
  64.             @Result(name="success",location="/contractReview/todoList.jsp"
  65.             }, 
  66.         <span style="color:#ff6666;"><strong>   interceptorRefs = {@InterceptorRef(value = "mydefault")}  )</strong></span> 
  67.     // 攔截器   
  68.      
  69.     public String todoItemList(){ 
  70.         String loginNames = ""
  71.         Map<String, TaskUserVo> userMap =  
  72.                 (Map<String, TaskUserVo>)this.request.getSession().getAttribute("deptUsers"); 
  73.         for(Map.Entry<String, TaskUserVo> entry : userMap.entrySet()){ 
  74.             loginNames += "'"+StringUtil.getNotNullValueString(entry.getKey()) +"'"+","
  75.         } 
  76.         if(loginNames.length() > 0){ 
  77.             loginNames = loginNames.substring(0, loginNames.length()-1); 
  78.         } 
  79.         String contract_name = this.request.getParameter("contract_name"); 
  80.         String contract_identifier = this.request.getParameter("contract_identifier"); 
  81.         String contract_money_type_id = this.request.getParameter("contract_money_type_id"); 
  82.         String contract_type1_id = this.request.getParameter("contract_type1_id"); 
  83.         String contract_type2_id = this.request.getParameter("contract_type2_id"); 
  84.         String contract_moneyLt = this.request.getParameter("contract_moneyLt"); 
  85.         String contract_moneyGt = this.request.getParameter("contract_moneyGt"); 
  86.         String project_charge_dept = this.request.getParameter("project_charge_dept"); 
  87.         String contract_group_id = this.request.getParameter("contract_group_id"); 
  88.         String purchase_type_id = this.request.getParameter("purchase_type_id"); 
  89.         String[] kpi_controls = this.request.getParameterValues("kpi_control"); 
  90.         String kpi_control = ""
  91.         if(kpi_controls != null && kpi_controls.length > 0){ 
  92.             for(String temp : kpi_controls){ 
  93.                 kpi_control += temp + ","
  94.             } 
  95.             kpi_control = kpi_control.substring(0, kpi_control.length()-1); 
  96.         } 
  97.          
  98.         this.request.setAttribute("contract_name", contract_name); 
  99.         this.request.setAttribute("contract_identifier", contract_identifier); 
  100.         this.request.setAttribute("contract_money_type_id", contract_money_type_id); 
  101.         this.request.setAttribute("contract_type1_id", contract_type1_id); 
  102.         this.request.setAttribute("contract_type2_id", contract_type2_id); 
  103.         this.request.setAttribute("contract_moneyLt",contract_moneyLt); 
  104.         this.request.setAttribute("contract_moneyGt", contract_moneyGt); 
  105.         this.request.setAttribute("project_charge_dept", project_charge_dept); 
  106.         this.request.setAttribute("contract_group_id", contract_group_id); 
  107.         this.request.setAttribute("purchase_type_id", purchase_type_id); 
  108.         this.request.setAttribute("kpi_control", kpi_control); 
  109.  
  110.         int totalRows = this.service.countTodo(contract_name,contract_identifier,  
  111.                 contract_money_type_id, contract_type1_id,  
  112.                 contract_type2_id, contract_moneyLt,  
  113.                 contract_moneyGt, project_charge_dept,  
  114.                 contract_group_id, purchase_type_id,  
  115.                 kpi_control,loginNames); 
  116.         PageInfo pageinfo = new PageInfo(totalRows, vo.pageSize, vo.page);   
  117.         List<Object[]> list = this.service.findTodoByPage(pageinfo.getBeginIndex(), vo.pageSize, 
  118.                 contract_name, 
  119.                 contract_identifier,  
  120.                 contract_money_type_id, contract_type1_id,  
  121.                 contract_type2_id, contract_moneyLt,  
  122.                 contract_moneyGt, project_charge_dept,  
  123.                 contract_group_id, purchase_type_id,  
  124.                 kpi_control,loginNames); 
  125.         //System.out.println("list.size======"+list.size()); 
  126.         PageResultSet<Object[]> result  = new PageResultSet<Object[]>(); 
  127.         result.setList(list); 
  128.         result.setPageInfo(pageinfo); 
  129.         this.request.setAttribute("result", result); 
  130.          
  131.         return "success"
  132.     } 
  133.      
  134.     /**
  135.     * @Title: getModel
  136.     * @Description: TODO(這裏用一句話描述這個方法的作用)
  137.     * @param @return    設定文件
  138.     * @throws
  139.     */ 
  140.     @Override 
  141.     public ContractReviewVo getModel() { 
  142.         // TODO Auto-generated method stub 
  143.         return vo; 
  144.     } 
  145.      
/**
 * 
 */
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

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> 
  3.  
  4. <struts>  
  5.     <package name="custom-default" extends="struts-default">   
  6. <!-- 定義一個攔截器 -->   
  7.         <interceptors>   
  8.             <interceptor name="authority"   
  9.                 class="com.wonders.stpt.contractReview.interceptor.AuthInterceptor">   
  10.             </interceptor>   
  11.             <!-- 攔截器棧 -->   
  12.             <interceptor-stack name="mydefault">   
  13.                 <interceptor-ref name="authority" />   
  14.                 <interceptor-ref name="defaultStack" />   
  15.                  
  16.             </interceptor-stack>   
  17.         </interceptors>   
  18.       </package> 
  19.     <constant name="struts.objectFactory.spring.autoWire.alwaysRespect" value="true"/> 
  20.     <constant name="struts.multipart.maxSize" value="25242880" /> 
  21.     <constant name="struts.custom.i18n.resources" value="fileUpload"></constant> 
  22. </struts> 
<?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>

過濾器:

  1. /**  
  2. * @Title: AuthInterceptor.java
  3. * @Package com.wonders.stpt.contractReview.interceptor
  4. * @Description: TODO(用一句話描述該文件做什麼)
  5. * @author zhoushun  
  6. * @date 2014年8月8日 下午3:25:49
  7. * @version V1.0  
  8. */ 
  9. package com.wonders.stpt.contractReview.interceptor; 
  10.  
  11. import java.util.Map; 
  12.  
  13. import com.opensymphony.xwork2.ActionContext; 
  14. import com.opensymphony.xwork2.ActionInvocation; 
  15. import com.opensymphony.xwork2.interceptor.AbstractInterceptor; 
  16. import com.wonders.stpt.core.login.constant.LoginConstant; 
  17.  
  18. /**
  19. * @ClassName: AuthInterceptor
  20. * @Description: TODO(這裏用一句話描述這個類的作用)
  21. * @author zhoushun
  22. * @date 2014年8月8日 下午3:25:49
  23. */ 
  24. public class AuthInterceptor extends AbstractInterceptor{ 
  25.  
  26.     /**
  27.     * @Title: intercept
  28.     * @Description: TODO(這裏用一句話描述這個方法的作用)
  29.     * @param @param arg0
  30.     * @param @return
  31.     * @param @throws Exception    設定文件
  32.     * @throws
  33.     */ 
  34.     @Override 
  35.     public String intercept(ActionInvocation invocation) throws Exception { 
  36.            // 取得請求相關的ActionContext實例   
  37.         String result = ""
  38.         ActionContext ctx = invocation.getInvocationContext();   
  39.         Map session = ctx.getSession();   
  40.         String user = (String) session.get(LoginConstant.STPT_SECURITY_LOGIN_NAME);   
  41.         t("begin"); 
  42.          
  43.         if (user != null && "G00100000123".equals(user)) {   
  44.             result = invocation.invoke();           
  45.         }  else
  46.             result = "error"
  47.         } 
  48.         t("end"); 
  49.         return result;   
  50.     } 
  51.  
  52.     private void t(String s){ 
  53.         System.out.println(s); 
  54.     } 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章