情况是这样的:
struts 交给 spring容器初始化 。在action中 有属性 :
private int parentId;
方法:
public void setParentID(){};IOC情况:
第一次,在parentId=null的情况下, setParentID()方法,会给parentId=0 ;
第二次,在parentId=!null情况下,setParentID()方法,会给parentId=相应的值,例如17 ;
第三次,在parentId= null的情况下, setParentID()方法,会给parentId= 17。
为什么,还是17啊。
而我想要的结果 ,应该是零 。
会是spring 做优化了吗?
struts 交给 spring容器初始化 。在action中 有属性 :
private int parentId;
方法:
public void setParentID(){};IOC情况:
第一次,在parentId=null的情况下, setParentID()方法,会给parentId=0 ;
第二次,在parentId=!null情况下,setParentID()方法,会给parentId=相应的值,例如17 ;
第三次,在parentId= null的情况下, setParentID()方法,会给parentId= 17。
为什么,还是17啊。
而我想要的结果 ,应该是零 。
会是spring 做优化了吗?
parentId:null
相应的在action的打印结果却是 :
parentId=17filter中public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException { System.out.println("页面属性配置开始!");
HttpServletRequest httpServletRequest = (HttpServletRequest) arg0;
HttpServletResponse httpServletResponse = (HttpServletResponse) arg1;
// 转码
httpServletRequest.setCharacterEncoding("UTF-8");
httpServletResponse.setContentType("text/html; charset=UTF-8"); offset = getOffset(httpServletRequest);
pagersizes = getPagerSizes(httpServletRequest);
String parentId1 = httpServletRequest.getParameter("parentId");
System.out.println("拦截器,parentId:"+ parentId1);
if (parentId1 == null) {
parentId = 0;
httpServletRequest.setAttribute("parentId", parentId);
} else {
httpServletRequest.setAttribute("parentId", Integer
.parseInt(parentId1));
}
SystemContext.setOffset(offset);
SystemContext.setPagersizes(pagersizes); try {
arg2.doFilter(httpServletRequest, httpServletResponse);
} finally {
System.out.println("释放本地变量");
SystemContext.removeOffset();
SystemContext.removePagersizes();
} }
action:public String execute() throws Exception { System.out.println("parentId=" + parentId);
System.out.println("pager.offset: "
+ request.getParameter("pager.offset")); PagerModel pm = moduleManager.searchModules(parentId); System.out.println("pagerModel.listSize: " + pm.getObjects().size());
System.out.println("pagerModel.total: " + pm.getTotal()); request.setAttribute("pm", pm);
request.setAttribute("parentId", parentId); int ppid = 0;
if (parentId != 0) {
Module module = moduleManager.findModule(parentId);
if (module.getParent() != null) {
ppid = module.getParent().getId();
}
} System.out.println("ppid: " + ppid);
request.setAttribute("ppid", ppid);
return SUCCESS;
}