使用Struts2 验证框架,验证信息重复多次出现
版权声明:本文为博主原创文章,未经博主允许不得转载。
问题描述:第一次提交表单。某个数据不符合规则,就会出现一条错误信息。再次提交,上次显示的错误信息不消失,又多出一条一模一样的错误信息。提交几次,就会多显示几条一模一样的错误信息。
刚开始发现这个问题还一直以为是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>
使用Struts2 验证框架,验证信息重复多次出现的更多相关文章
- Struts2(十二)使用验证框架验证数据较验
一.数据验证 1.1.为什么要进行数据验证 对数据的合法性进行检查,只允许合法的数据进入应用程序 1.2.在哪里实现数据验证 客户端验证: 数据提交前在客户端验证 可使用JavaScript或者JQu ...
- 第二天(1)声明式验证之使用验证框架验证域模型和ModelDriven验证
有一类特殊的属性,即这个属性的类型是另外一个JavaBean,如有一个User类,代码如下: package data; public class User { private String name ...
- 服务器端验证--验证框架验证required.
struts2表单验证里field-validator type值一共可以取哪些?都什么含义? int 整数:double 实数:date 日期:expression 两数的关系比较: email E ...
- struts2(三)---struts2中的服务端数据验证框架validate
struts2为我们提供了一个很好的数据验证框架–validate,该框架可以很方便的实现服务端的数据验证. ActionSupport类提供了一个validate()方法,当我们需要在某一个acti ...
- struts2 的验证框架validation如何返回json数据 以方便ajax交互
struts2 的验证框架validation简单,好用,但是input只能输出到jsp页面通过struts2的标签<s:fielderror />才能取出,(EL应该也可以). 如果使 ...
- (七)Struts2 验证框架
所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:Struts2 验证简介 Struts2 基于Struts2 拦截器,为 ...
- Struts2 框架验证
struts2框架验证(xml方式): * 首先要从页面中获取对应的标签name属性的值,在动作类action中声明同名的属性,提供get和set方法 * 创建一个xml格式验证文 ...
- struts2学习笔记(三)—— 在用户注冊程序中使用验证框架
实现目标: 1.使用验证框架对用户注冊信息进行验证 2.验证username.password.邮箱不能为空 3.验证username.password长度 ...
- [JavaWeb基础] 015.Struts2 表单验证框架
在web开发的过程中,我们经常要用到一些填写表单的操作,我们一般都要在提交表单信息的时候对表单的内容进行验证,struts2给我们提供了简单的实现接口,让我们可以很容易的对表单进行验证.下面讲解下最传 ...
- tp框架验证信息
今天在这里我们学习一下tp框架里面怎么做验证. 验证又分为两种:静态验证.动态验证 首先,我们还是先做一个html界面,名为add.html.代码如下: <!DOCTYPE html PUBLI ...
随机推荐
- MySQL CAST与CONVERT 函数的用法
MySQL CAST与CONVERT 函数的用法 产生另一个类型的值 MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值. 两者具体的语法如下:1 CAS ...
- 【JavaScript】XMLHttpRequest Level2使用指南
XMLHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信. 最早,微软在IE 5引进了这个接口.因为它太有用,其他浏览器也模仿部署了,ajax操作因此得以诞生. ...
- Cocos2d-x v3.0 新的事件调度方法 lambda表达式的使用
欢迎添� Cocos2d-x 交流群: 193411763 转载请注明原文出处:http://blog.csdn.net/u012945598/article/details/24603251 Coc ...
- Codeforces #250 (Div. 2) C.The Child and Toy
之前一直想着建图...遍历 可是推例子都不正确 后来看数据好像看出了点规律 就抱着试一试的心态水了一下 就....过了..... 后来想想我的思路还是对的 先抽象当前仅仅有两个点相连 想要拆分耗费最小 ...
- 三星Galaxy S4(GT-I9500)获取ROOT权限教程(转)
http://news.candou.com/2013-05-20/453695_1.shtml 获取root权限的方法
- Matlab程序怎样打包
本人安装的版本号是MATLAB(R2010b) 打包过程例如以下: MATLAB命令窗体输入deploytool,打开一个Eeployment Project的窗体: 1.在Name输入你想要打包后的 ...
- Perl 小知识之多行匹配
如果想匹配多行文本(即文本中有换行符)中的内容,比如: aaa ... bbb ... 要匹配aaa和bbb之间的内容,我们可以使用 /aaa.*bbb/s 其中/s修饰符可以让.匹配任何字符,包括换 ...
- 0c-34-自动释放池
#import <Foundation/Foundation.h> #import "Person.h" Person * creatPerson() { Person ...
- Ubantu下FTP服务器资源进行控制
在FTP服务器的管理中无论对本地用户还是匿名用户,对于FTP服务器资源的使用都需要进行控控制, 避免由于负担过大造成FTP服务器运行异常, 可以添加以下配置项对FTP客户机使用FTP服务器资源进行控制 ...
- memcached缓存批量更新解决方案探讨
众所周知,Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 俺所在的公司经营的主要是基于web和wap两个平台的手机游戏门户网站,分布式缓存解决方法正好有 ...