版权声明:本文为博主原创文章,未经博主允许不得转载。

问题描述:第一次提交表单。某个数据不符合规则,就会出现一条错误信息。再次提交,上次显示的错误信息不消失,又多出一条一模一样的错误信息。提交几次,就会多显示几条一模一样的错误信息。    

  刚开始发现这个问题还一直以为是spring和struts整合时的错误,查阅了诸多资料,了解了一下struts的校验规则:

  -->即先进行validation的校验,如果不符合,直接跳转到input页面,不再进入action,同时填充fielderror字段,页面可以通过访问fielderror来获取错误提示。

  而且struts2的action不是单例模式,每提交一次就会生成一个对象,所以必须在spring对action的设置中加入scope="prototype" 属性。即

  在spring的配置文件中Action配置修改,加入scope="prototype"即可(scope="prototype" 会在该类型的对象被请求时创建一个新的action对象。如果没有配置       scope =prototype则添加的时候不会新建一个action,他会保留上次访问的过记录的信息。)

  spring 默认scope 是单例模式,这样只会创建一个Action对象,每次访问都是同一个Action对象,数据不安全。 比较而言struts2 是要求每次访问都对应不同的Action

  而scope="prototype" (多例模式)可以保证当有请求的时候都创建一个Action对象
 <!-- 配置RegisterAction -->
<bean id="registerAction" class="com.blog.action.Register" scope="prototype"> <!--加入scope="prototype" -->
<property name="userService">
<ref bean="userService"/>
</property> </bean>

  顺便贴下struts.xml中的配置:

 <?xml version="1.0" encoding="UTF-8" ?>

 <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<constant name="struts.i18n.encoding" value="gb2312"></constant>
<package name="struts2" extends="struts-default">
<action name="register" class="registerAction"> <!-- registerAction 即是对上面id为registerAction的引用,也就是struts2和spring的整合-->
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
<result name="input">/register.jsp</result>
</action>
</package>
</struts>

最新文章

  1. 简单的例子了解自定义ViewGroup(一)
  2. MVC5路由系统机制详细讲解
  3. iOS阶段学习第一天笔记(Mac终端的操作)
  4. 获取iTextSharp 的image 报错
  5. XAML基础
  6. Markdown 编辑模板
  7. tlplayer 所有平台版本支持水印叠加
  8. [置顶] Flex中Tree组件无刷新删除节点
  9. Lonely Integer
  10. [Android学习笔记]双缓冲绘图技术
  11. 用tp框架来对数据库进行增删改
  12. Java Excel 合并单元格
  13. 【Matplotlib-01】Python 绘图库 Matplotlib 入门教程
  14. Java学习笔记(一)网格袋布局
  15. Vue 部署IIS 单页面刷新报404问题
  16. Nextcloud私有云盘在Centos7下的部署笔记
  17. 本地Sql Server数据库传到服务器数据库
  18. word2010自定义的多级列表编号变成黑块的解决办法
  19. ubuntu 创建容器 并ssh 连接容器
  20. 在Linux上安装Chef工作站

热门文章

  1. Struts2中属性驱动与模型驱动
  2. ios实例开发精品源码文章推荐
  3. C++基础之预处理命令
  4. 用Python编写九九乘法表考虑print自动换行问题
  5. jq实现搜索引擎的提示效果
  6. 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 7.全局防护盲点的总结上篇
  7. SecureCRT 滚动条设置
  8. Objective-C学习笔记
  9. YYCache 设计思路
  10. BootStrap2学习日记15----选项卡