Action中的实体类用Spring注入的问题

Coder_D 2014-08-08 04:16:05
action中定义了一个User user,里面有id,name,password和memo四个属性,action中有user的setter和getter,前端三个控件id为user.id,user.name,user.password,提交后调用action中的insertUser方法插入一条记录(此时memo字段为空!)。接下来我有一个按钮,点击触发ajax请求,参数为user.id和memo,调试时候发现之前的name和password也存在,这是怎么引起的?spring不重新给我new一个user对象吗?
...全文
319 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Coder_D 2014-08-09
  • 打赏
  • 举报
回复
引用 3 楼 dudadong 的回复:
bean的生命周期scope有没有设置成prototype
感谢。已经解决了。
Coder_D 2014-08-09
  • 打赏
  • 举报
回复
引用 2 楼 wlwlwlwl015 的回复:
和spring没关系,struts本身针对每次请求都会new一个新action实例的。 应该是user的值存在了struts的对象栈中,你在Action中定义的全局User变量,定义成这样试试: public User user=new User(); 还有ajax的参数的参数名尽量定义成字符串,不然容易造成混淆。
一开始我是将action交给Spring管理的,里面的user也是注入的,后来user不用注入了,并将action的scope设置成了prototype就解决了,我想应该是action单例模式的缘故吧。
dudadong 2014-08-08
  • 打赏
  • 举报
回复
bean的生命周期scope有没有设置成prototype
小灯光环 2014-08-08
  • 打赏
  • 举报
回复
和spring没关系,struts本身针对每次请求都会new一个新action实例的。 应该是user的值存在了struts的对象栈中,你在Action中定义的全局User变量,定义成这样试试: public User user=new User(); 还有ajax的参数的参数名尽量定义成字符串,不然容易造成混淆。
wu244534279 2014-08-08
  • 打赏
  • 举报
回复
是使用struts2吗?如果是的话,user对象应该不是Spring管理的,返回之前的数据那应该是ajax缓存问题了,可以设置ajax不支持缓存试试。最好贴出关键代码,不然谁知道你这个问题出现在哪里了

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧