日期:2014-05-18  浏览次数:20668 次

问大家关于javaWeb开发框架中struts2的action的问题。
本帖最后由 Henry_YQH 于 2014-03-16 11:35:50 编辑
struts1和springMvc的action都是默认单例的,经常要加上要加上 @Scope("prototype")。

而struts2的action是多例的。

就是说对于struts2而言,每次请求action,action类里面的变量都是新的,不会受其他同时访问这个action的请求影响。

struts2的action本来就是多例,为那什么还要加上 @Scope("prototype")??

网上说也是为了防止action里的变量互相影响,这点我就有点不太理解了,可能是我理解的问题,求详解~~~谢啦!!!
------解决方案--------------------
@Scope("prototype")是在使用spring的情况下才加上去的吧。
spring 默认scope 是单例模式,这样只会创建一个Action对象,楼主也说了struts2的action应该要多例的,所以scope="prototype" 可以保证当有请求的时候都创建一个Action对象。