Struts2中的验证框架
通过注解的方式,可以让方法不用验证
@SkipValidation public String toRegView() { System.out.println("toRegView"); return "regView"; }
public class ValidateAction extends ActionSupport { private static final long serialVersionUID = -6933309304624396640L; private String name; private Integer age; private String password ; private String confirmPassword ; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getConfirmPassword() { return confirmPassword; } public void setConfirmPassword(String confirmPassword) { this.confirmPassword = confirmPassword; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String reg() { return "success"; } @SkipValidation public String toRegView() { System.out.println("toRegView"); return "regView"; } }
ActionName-validation.xml
<validators> <field name="name"> <field-validator type="requiredstring"> <message>name is required</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">5</param> <param name="maxLength">10</param> <message key="error.name.length" /> </field-validator> <field-validator type="email"> <message>name is invalid email address!</message> </field-validator> </field> <field name="age"> <field-validator type="required"> <message>age is required</message> </field-validator> <field-validator type="int"> <param name="min">20</param> <param name="max">100</param> <message>age rang is wrong!</message> </field-validator> </field> <validator type="expression"> 注意这里不是进行字段的校验,所以不用field,用validator <param name="expresssion">password == confirmPassword</param> 验证密码是否一致 <message>password input isn't the same!</message> </validator> </validators>
考虑到国际化的关系,如果把验证的错误提示写在验证的配置文件里,这样就没办法做到国际化
此时应该把错误提示放到一个配置文件中。
在action同目录下,新建一个配置文件,命名规则为:ActionName.properties
error.name.length=${name} is goog name,but length must be between ${minLength} and ${maxLength}.
在配置文件中定义名字长度错误的信息
此时还需要把此处定义信息的key与验证配置文件关联:
<validators> <field name="name"> <field-validator type="requiredstring"> <message>name is required</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">5</param> <param name="maxLength">10</param> <message key="error.name.length" />这里的key与上面关联 </field-validator> </field> </validators>
<html> <head> <title>reg.jsp</title> </head> <body> <s:actionerror/> 这句是显示密码是否一致的错误消息,与字段错误的消息提示不同 <s:form namespace="/validate" action="ValidateAction_reg" method="post" theme="xhtml"> <s:textfield name="name" label="UserName" /> <s:textfield name="age" label="UserAge" /> <s:textfield name="password" label="password" /> <s:textfield name="confirmPassword" label="confirmPassword" /> <s:submit /> </s:form> </body> </html>
注意:上面的校验是服务端校验,如果想让客户端校验,可以在form表单加一个属性
<html> <head> <title>reg.jsp</title> </head> <body> <s:actionerror/> <s:form namespace="/validate" action="ValidateAction_reg" method="post" theme="xhtml" validate="true"> 加这个属性,就是客户端校验 <s:textfield name="name" label="UserName" /> <s:textfield name="age" label="UserAge" /> <s:textfield name="password" label="password" /> <s:textfield name="confirmPassword" label="confirmPassword" /> <s:submit /> </s:form> </body> </html>
Struts2中的验证框架的更多相关文章
- struts2学习笔记(三)—— 在用户注冊程序中使用验证框架
实现目标: 1.使用验证框架对用户注冊信息进行验证 2.验证username.password.邮箱不能为空 3.验证username.password长度 ...
- Struts2中的校验框架
Struts2提供的客户端校验 尽管这种支持比较弱,但采用Struts2中的客户端校验时需要注意以下几点 1..将<s:form validate="true">的va ...
- [JavaWeb基础] 015.Struts2 表单验证框架
在web开发的过程中,我们经常要用到一些填写表单的操作,我们一般都要在提交表单信息的时候对表单的内容进行验证,struts2给我们提供了简单的实现接口,让我们可以很容易的对表单进行验证.下面讲解下最传 ...
- 第二天(1)声明式验证之使用验证框架验证域模型和ModelDriven验证
有一类特殊的属性,即这个属性的类型是另外一个JavaBean,如有一个User类,代码如下: package data; public class User { private String name ...
- struts2(三)---struts2中的服务端数据验证框架validate
struts2为我们提供了一个很好的数据验证框架–validate,该框架可以很方便的实现服务端的数据验证. ActionSupport类提供了一个validate()方法,当我们需要在某一个acti ...
- struts2 的验证框架validation如何返回json数据 以方便ajax交互
struts2 的验证框架validation简单,好用,但是input只能输出到jsp页面通过struts2的标签<s:fielderror />才能取出,(EL应该也可以). 如果使 ...
- Struts2(十二)使用验证框架验证数据较验
一.数据验证 1.1.为什么要进行数据验证 对数据的合法性进行检查,只允许合法的数据进入应用程序 1.2.在哪里实现数据验证 客户端验证: 数据提交前在客户端验证 可使用JavaScript或者JQu ...
- 关于struts2 验证框架在联网的时候可以用,不联网不起作用的问题
这是一个让我很头痛的问题,我是在一个其他的项目框架的基础上来开发新的项目. 当使用struts验证框架时,突然发现这个验证不起作用了,我就纳闷了之前用这个开发的项目好好的怎么到我这就不能用了呢? xm ...
- (七)Struts2 验证框架
所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:Struts2 验证简介 Struts2 基于Struts2 拦截器,为 ...
随机推荐
- Java 泛型 泛型代码和虚拟机
Java 泛型 泛型代码和虚拟机 @author ixenos 类型擦除.原始类型.给JVM的指令.桥方法.Java泛型转换的事实 l 类型擦除(type erasure) n Java泛型的处理 ...
- QQ头像一键添加校徽
简书链接地址:http://www.jianshu.com/p/dcb2cbd07e4d 项目展示链接地址:www.zhaozhengyu.cn/SchoolImage/index.html
- CDOJ 1270 Playfair(模拟)
题目链接 Playfair is a kind of substitution cipher.And the encryption role is simple.In general,there ar ...
- 信息处理,分而治之-- ESFramework 使用技巧
ESFramework开发手册系列文章已经详细介绍了如何使用ESPlus提供的ESPlus.Application.CustomizeInfo空间来发送和处理自定义信息,而且,在我们在前面介绍的de ...
- createThread和_beginthreadex区别
摘自:http://blog.csdn.net/morewindows/article/details/7421759 CreateThread()函数是Windows提供的API接口,在C/C++语 ...
- 【入门一】一些简单的C程序及VS的安装
实例1 用 printf 函数打印字符串 # include <stdio.h> // 预处理指令,结尾不加 ';' int main(void) // int表示该函数将返回一个整数值, ...
- D - 娜娜梦游仙境系列——村民的怪癖
D - 娜娜梦游仙境系列——村民的怪癖 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Othe ...
- 消除警告"property access result unused - getters should not be used for side effects"
我写了如下一段代码: - (void)btnClicked:(UIButton *)button { switch (button.tag) { : self.initShare; break; de ...
- Merge Into 用法
从一个数据库的一张表同步数据到另外一个数据库的一张表,同步的数据不是insert就是update. 一般做法是先判断当前数据在另外一张表存不存在,存在则更新,不存在则插入.需要一次查询判断:exist ...
- HDU 5826 physics
该问题和xi,di均无关,碰撞只会使得速度反向,大小不会变.因此只要计算速度. #pragma comment(linker, "/STACK:1024000000,1024000000&q ...