struts2 action中获得的实体对象怎样才是new的。

charlesa66 2013-04-09 01:11:15
public class UserAction extends ActionSupport{
private User user;
private Biz biz;
getter setter;
public String insertUser(){
biz.insert(user);
return SUCCESS;
}
}
在连续调用这个Action的时候发现执行一次之后再获得的user对象是前一次使用的user对象。这样就会出现id不匹配的问题。如果才能保证action中user是new出来的,而不是前一次使用的对象?
...全文
185 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
树成 2013-04-12
  • 打赏
  • 举报
回复
引用 6 楼 babys 的回复:
你的Action是和Spring一起用还是单独用的,如果是和Spring一起使用,那么Spring中的Bean默认是单例的,你要修改一下.如果是xml,那就要加上prototype属性 <bean id="baseDataAction" class="xx.xx.xx.yy.BaseDataAction" scope="prototype"></bean> 如果是注解……
此人正解,struts2默认是singleton
tianma630 2013-04-12
  • 打赏
  • 举报
回复
不可能出现这个问题 肯定是lz的代码有问题
babys 2013-04-12
  • 打赏
  • 举报
回复
你的Action是和Spring一起用还是单独用的,如果是和Spring一起使用,那么Spring中的Bean默认是单例的,你要修改一下.如果是xml,那就要加上prototype属性 <bean id="baseDataAction" class="xx.xx.xx.yy.BaseDataAction" scope="prototype"></bean> 如果是注解的.在类上打上 @Controller("xxx") @Scope("prototype")
桃园闲人 2013-04-11
  • 打赏
  • 举报
回复
引用 3 楼 charlesa66 的回复:
业务就是从页面存储信息。字段并不重要。主要是一个页面提交一个实例到数据库。每次提交的id都是空的才能插入到数据库中。由数据库分配id。 现在问题是二次提交的时候user本身有个id。这不是我想看到的。
你的实现方式不对呀,第二次提交应该又是一个新的对下才对,你在保存成功后应该转发到输入页面或者将action中的对象的id手动置空。
charlesa66 2013-04-09
  • 打赏
  • 举报
回复
引用 2 楼 Inflexible_lin 的回复:
唉 这个偶貌似没有遇到过这样的情况
我反复试了几次。貌似连续提交会出现这个问题。如果提交一次等几分钟再提交就没问题了。应该是user有生命周期的。
charlesa66 2013-04-09
  • 打赏
  • 举报
回复
业务就是从页面存储信息。字段并不重要。主要是一个页面提交一个实例到数据库。每次提交的id都是空的才能插入到数据库中。由数据库分配id。 现在问题是二次提交的时候user本身有个id。这不是我想看到的。
aleyn 2013-04-09
  • 打赏
  • 举报
回复
唉 这个偶貌似没有遇到过这样的情况
桃园闲人 2013-04-09
  • 打赏
  • 举报
回复
action可以记录用户会话的,多次请求同一个action使用的是同一个对象,所以属性也就是同一个咯,你要把你想实现的业务说一下,需要知道你页面时怎么写的?

81,094

社区成员

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

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