昨晚为了帮别人解决一个问题花费了我两个多小时,真伤心啊。
具体的操作步骤是先进行查询再进行详情,再进行查询。最后一次查询得值不正确,经查证在详情对象和查询对象的地址是一样的。在经过详情过后,查询对象的值也发生了变化。为了两次操作互补影响,解决方案就用非单例了。按理说struts2默认是非单例的啊,可用spring的注解就默认单例了。
在struts2中利用Controller进行注解Action时,默认方式是单例模式,要想改成非单例需要加注解@Scope("prototype"),这样就可以保证两次请求Action都new一个对象,进而避免的两次请求操作同一对象出现值混淆的情况。
作者:Tandaly