struts1和struts2中Action的区别

来源:互联网 发布:淘宝男装潮牌店铺排行 编辑:程序博客网 时间:2024/05/18 11:49

 struts1中,action默认是单实例的,可以从struts1中Action都没有属性来看出来,因为属性代表一个类的状态,没有属性就说明这个类没

有状态,这样当客户端发起请求的时候,因为action没有状态,所有的请求都可以共用一个Action;

在struts2中,action默认不是单实例的,这样客户端发起一个对Action的请求,就会产生一个Action的实例,可以从struts2中Action可以有

属性来看出来。但是当把struts2和spring整合起来以后,spring中如默认的对Action是单例管理的,scope="singleton"(默认情况):

<bean id="deleteUserAction" class="com.oristand.action.user.DeleteUserAction" >
 <property name="userService">
  <ref bean="userService"/>
 </property>
</bean>

但这样的话就会出问题,所有的客户端请求只有一个Action的时候就会报错,比如说在产生错误信息的时候发起一个错误请求(如表单为空,

产生一个错误;再发起一个同样的一个错误请求(还是表单为空),则会显示两条错误信息,都是说表单为空,这样就不符合逻辑,

所以要在spring中修改相应的配置,让struts2的Action不是单态的,
只需要改成scope="prototype".


<bean id="deleteUserAction" class="com.oristand.action.user.DeleteUserAction"  scope="prototype">
 <property name="userService">
  <ref bean="userService"/>
 </property>
</bean>


结论:在spring配置文件中,对所有的Action管理,都必须加上scope="prototype"这个属性。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 空姐体检差身高怎么办 锻炼过猛肌肉疼怎么办 中考体检有问题怎么办 想参军视力不够怎么办 公司体检查出乙肝怎么办 乙肝携带者福利体检怎么办 小孩没考好我该怎么办 客户考虑我该怎么办 明天中考 我该怎么办 考试考差了怎么办 没考上理想高中怎么办 我是差学生中考怎么办 衬衫后背鼓起来怎么办 高考体检表没了怎么办 高考体检视力不合格怎么办 高考体检转氨酶高怎么办 高考体检肝功能异常怎么办 高考体检有乙肝怎么办 高考体检有纹身怎么办 学校体检血压高怎么办 高考体检不属实怎么办 艺考身上有花臂怎么办 义务兵因病致残怎么办 新兵练成绩优秀怎么办 阿提拉部队得了瘟疫怎么办 公安体能测评胖子怎么办 社区工作者笔试不及格怎么办 警察考核体能差怎么办 胖子跑步跑不动怎么办 电脑跑不动了怎么办 在部队体能不好怎么办 自考考试没过怎么办 没工作怎么办日本签证 毕业证被扣了怎么办 毕业证被撕了怎么办 中专的学历认证怎么办 搬宿舍东西多怎么办 员工宿舍丢东西怎么办 搬宿舍东西太多怎么办 部队没考上军校怎么办 士官证丢了怎么办