当一个页面全过参数过来后,struts2会调用相应的set方法,所有的属性都会封装在valueStack里面,有没有什么方法,可以删除valueStack中的封装的某些属性?
我试过
request.setAttribute("struts.valueStack",null);
valueStack.set(属性,null);
等
但还是回传数据了?
我试过
request.setAttribute("struts.valueStack",null);
valueStack.set(属性,null);
等
但还是回传数据了?
Preparable, ServletRequestAware{
public void prepare() throws Exception {
Map params = ActionContext.getContext().getParameters();
params.remove("key");//--指定要移除的参数 }
}Action继承此类即可
从源代码方面解决问题是最好的问题。
看过源代码后基本上这种问题就可以迎刃而解。
因为struts 2是根据属性来封装请求参数的。
其实你没必要手动删除,因为struts2在一次请求执行完后,不是会经过FilterDespitch这个过滤器吗
它会给你自动清除的
如果你一定要手动删除的话,也可以,因为valueStack 是ActionContext中的根对象
所以你可以通过ActionContext.getContext().getRoo()获取到valueStack对象
然后调用相应的方法进行删除操作