Struts2使用ModelDriven对象值到前台为空?
2014-04-17 16:18
851 查看
我们使用了Struts2的接口ModelDriven来实现对对象的封装跟前台数据进行交互,这个时候需要实现getModel方法,即:
但是我们自定了了一个获取用户的方法:
当我们页面有相对于的对象属性值,通过debug标签查看,全部为null?这是为啥。
其实这个是由于Struts2使用到的值栈(Value Stack)机制有关。
原因:getModel这个方法会返回user对象,把原先查询到的user对象要压入栈之后再压入,这样旧的值就被覆盖了,所以之后user对象就变为一个新的new出来对象,相应的属性必然为空。
解决的方法:
在struts.xml的action里面修改属性:modelDriven.refreshModelBeforeResult,这样在返 回结果之前会清掉user。这样才能得到我们相要的结果。
参考自:http://blog.csdn.net/li_tengfei/article/details/6098145 http://blog.csdn.net/zhang854429783/article/details/8221733
@Override public User getModel() { if(user == null){ user = new User(); } return user; }
但是我们自定了了一个获取用户的方法:
public String getUserById(){ user = userService.getUserById(user.getUid()); if(user == null){ msg = "不能获得指定用户!"; return "fail"; } System.out.println(user.getUname()); return "modify"; }
当我们页面有相对于的对象属性值,通过debug标签查看,全部为null?这是为啥。
其实这个是由于Struts2使用到的值栈(Value Stack)机制有关。
原因:getModel这个方法会返回user对象,把原先查询到的user对象要压入栈之后再压入,这样旧的值就被覆盖了,所以之后user对象就变为一个新的new出来对象,相应的属性必然为空。
解决的方法:
在struts.xml的action里面修改属性:modelDriven.refreshModelBeforeResult,这样在返 回结果之前会清掉user。这样才能得到我们相要的结果。
<interceptor-ref name="defaultStack"> <param name="modelDriven.refreshModelBeforeResult">true</param> </interceptor-ref>
参考自:http://blog.csdn.net/li_tengfei/article/details/6098145 http://blog.csdn.net/zhang854429783/article/details/8221733
相关文章推荐
- Struts2使用ModelDriven后JSON数据返回不正确
- struts2 if 标签的使用 已经使用迭代取出List中的Object对象中的属性
- Struts2 ModelDriven 使用
- Struts2中如何接收前台传递的数据之基本数据类型,对象,和对象数组
- struts2中使用ModelDriven
- 页面使用struts2标签获取List中的对象属性值,Struts2常用标签总结
- struts2中使用serclet的session,application等内置对象
- Struts2 使用OGNL表达式访问ENUM对象
- 关于在struts2中interceptor 中使用ActionInvocation 对象获得HttpServletRequest中封装的参数,以Map的形式
- 使用模型驱动ModelDriven,出现对象为空问题
- Struts2使用OGNL访问非值栈对象
- Struts2 ModelDriven 使用
- 前台JSON后台接收的时候,转变为对象的要求@resquestBody的使用
- Struts2之使用ModelDriven完成的参数自动封装个人理解
- Struts2 ModelDriven模型驱动的使用
- 在Struts2中使用类似传统的servlet、session、application作用域对象
- struts2 dao层使用list对象model型临时数据,web前端显示数据
- struts2操作json成字符串格式错误被转义及其前台访问json对象的方法
- struts2传递json对象给前台
- struts2如何动态调用action的方法以及使用json插件范围json格式的javascript对象