Action Setter注入参数

yanchao90 发布于 2013/12/27 10:34
阅读 157
收藏 0

DemoAction.java


public class DemoAction implements Action, ServletRequestAware {

	private HttpServletRequest request;

	@Override
	public String execute() throws Exception {

		if(request.getParameterMap().size() > 0) {
			return Action.ERROR;
		}

		return Action.SUCCESS;
	}

	@Override
	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}
}
假设Struts2中映射的地址是/demo,如果访问/demo?ServletRequest就会给request注入一个null值,这个问题怎么避免?


加载中
0
yanchao90
yanchao90
搞了半天,突然想起Struts自带的ParametersInterceptor可以实现这功能。

<interceptor-ref name="params">
  <param name="acceptParamNames">param1,param2</param>
</interceptor-ref>



0
淘淘我的小宝宝
淘淘我的小宝宝
set注入确实是根据方法名字来的,可以用HttpServletRequest request = ServletActionContext.getRequest();获取吧
0
大喵哥
大喵哥

你为啥要这样写呢? struts2有获取原生request的方式的

HttpServletRequest request = ServletActionContext.getRequest();



yanchao90
yanchao90
这只是个示例,如果我是用spring注入一个Service什么的,这岂不是留下了漏洞
返回顶部
顶部