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 拦截器,为 ...
随机推荐
- hdu_3341_Lost's revenge(AC自动机+状态hashDP)
题目链接:hdu_3341_Lost's revenge 题意: 有n个模式串,一个标准串,现在让标准串重组,使得包含最多的模式串,可重叠,问重组后最多包含多少模式串 题解: 显然是AC自动机上的状态 ...
- 0. Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- Maxmum subsequence sum problem
We have a lot of ways to solve the maximum subsequence sum problem, but different ways take differen ...
- [SOJ] 1282. Computer games (KMP)
坑爹题 1282. Computer Game Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Brian is an ...
- Arch安装详解
选择安装方式 CD/USB Arch启动盘安装 使用Arch启动盘比较简单方便,没有额外设置,直接阅读下一步. USB flash installation media 启动盘制作: USB flas ...
- 通过RVM安装Ruby失败
第一次安装失败是由于Homebrew一直安装不成功,遂去http://brew.sh/index_zh-cn.html官网 通过 /usr/bin/ruby -e "$(curl -fsSL ...
- 关于oracle数据库(10)函数
分析函数,用于统计排名 语法:函数名() over(order by 排序字段 asc | desc) row_number() 无论值是否相等,生成连续的行号 -- 1,2,3,4, select ...
- C++ 使用string一行一行读取文件
c++ 读取文件中的一行一行数据 通用模板: std::ifstream in(dictpath); if(!in) { std::cout << __DATE__ << &q ...
- HDU 1969 Pie
二分答案+验证(这题精度卡的比较死) #include<stdio.h> #include<math.h> #define eps 1e-7 ; double a[ff]; d ...
- thinkphp整合系列之phpqrcode生成二维码
php生成二维码其实挺简单的:当然指的是使用qrcode类库: 因此关于是否要写这篇博客:我是犹豫了再三的: 不过最后还是决定写下吧:如果有童鞋急着用:就可以直接引了: 再个也可以作为即将写的文章微信 ...