struts2 注解配置拦截器 实例
2014-08-08 15:49
369 查看
/** * */ 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);
}
}
相关文章推荐
- struts2 注解配置拦截器 实例
- struts2注解下的拦截器配置
- struts2自定义拦截器注解配置方法
- Struts2使用20 -- 注解配置2 -- 生命周期回调注解(拦截器注解)
- struts2基于注解且使用拦截器的文件上传配置
- Struts2拦截器Interceptor的原理与配置实例详解
- struts2基于注解的拦截器配置
- struts2拦截器配置实例
- Struts2拦截器Interceptor的原理与配置实例详解(十一)
- 个人总结的Struts2拦截器使用和拦截栈的配置,基于注解的方式
- Struts2使用20 -- 注解配置2 -- 生命周期回调注解(拦截器注解)
- Struts2拦截器配置实例
- struts2注解下的拦截器配置
- Struts2配置文件、拦截器详解
- Struts2自定义拦截器实例—登陆权限验证
- struts2拦截器--注解
- struts2自定义拦截器及其配置(备份)
- Struts2自定义拦截器实例—Session超时的处理
- Struts2使用15 -- 拦截器5 -- 实例
- 关于Struts2配置多个拦截器