struts2--详细了解struts2框架的校验器
来源:互联网 发布:1大学生网络党校 编辑:程序博客网 时间:2024/06/05 01:04
和拦截器一样,struts2提供了内置校验器。在/com/opensymphony/xwork2/validator/validators/default.xml下。具体如:
default.xml:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator Config 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd"><!-- START SNIPPET: validators-default --><validators> <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/> <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/> <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/> <validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/> <validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/> <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/> <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/> <validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/> <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/> <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/> <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/> <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/> <validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/> <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/> <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/> <validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/></validators><!-- END SNIPPET: validators-default -->1、转换校验器(conversion):
字段校验风格:
<validators> <field name = "user.age"> <field-validator type = "conversion"> <param name = "repoplateField">true</param><!--类型转化失败,仍保留原来的错误输入--> <message>你的年龄必须是一个整数</message> </field-validator> </field></validators>
非字段校验器配置风格:
<validators> <validator type = "conversion"> <param name = "fieldName">user.age</param> <param name = "repoplateField">false</param> <message>你的年龄必须是一个整数</message> </validator></validators>
2、邮件地址校验器(email):
<field name = "user.email"> <field-validator type = "email"> <message>您的邮件格式不正确</message> </field-validator> </field>
3、网址校验器(url):
<field name = "字段名"> <field-validator type = "url"> <message>提示错误信息</message> </field-validator> </field>4、表达式校验器(expression):(不可用在字段校验确配置风格中)
表达式校验器的名字:expression,它是一个非字段校验器, 不可在字段校验器中使用它,该表达式要求OGNL表达式返回TRUE;当返回TRUE时,该校验通过,否则就算该校验没有通过!
参数:
- expression: 该参数指定一个逻辑表达式,该逻辑表达式基于ValueStack进行求值,最后返回一个Boolean值,当返回TRUE时校验通过,否则校验失败
<validator type = "expression"> <param name = "expression">……</param> <message>提示错误信息</message> </validator>
5、必填校验器(required):检查字段必须有值(null)
<field name="user.password"><field-validator type="required"><message>请输入密码</message></field-validator></field>由于是和null作比较,而表单提交的是字符串,当不填写任何内容时为"",导致无法达到效果。当表单提交没有此字段时为null,如:
<body> <s:debug/> <s:form action = "login" method = "post"> <s:textfield name = "user.username" label = "用户名"/> <!-- <s:password name = "user.password" label = "密码"/> --> <s:textfield name = "user.age" label = "年龄"/> <s:textfield name = "user.tel" label = "电话"/> <s:textfield name = "user.birthday" label = "生日"/> <s:submit value = "提交"/> </s:form> </body>debug看结果:
6、字符串长度校验器(requiredstring):
<field name="user.username"><field-validator type="requiredstring"><param name="doTrim">true</param> <!--doTrim除去字符串前后空格--><message>用户名不能为空</message></field-validator></field>
7、整数校验器(int):
<field name = "user.age"> <field-validator type = "int"> <param name = "min">1</param> <param name = "max">100</param> <message>输入的年龄必须在1-100之间</message> </field-validator> </field>
8、日期校验类型(date)
<field name = "user.birthday"> <field-validator type = "date"> <param name = "min">1990-01-01</param> <param name = "max">2020-01-01</param> <message>请正确输入生日</message> </field-validator> </field>
9、字段表达式校验器(fieldexpression)
<field name="user.repassword"><field-validator type="fieldexpression"> <param name = "expression"><![CDATA[user.password==user.repassword]]></param><message>两次密码不一致</message></field-validator></field>
10、正则表达式校验器(regex)
<field name = "user.password"> <field-validator type = "regex"> <param name = "expression"><![CDATA[(\w{6})]]></param> <message>${getText("user.password.regex")}</message> </field-validator> </field>
11、visitor校验器:
该属性用于检测Action里的复合属性(如User对象等)以User对象为例说明:
LoginAction.java:
package com.action;import com.bean.User;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{ private User user; public String execute() {return SUCCESS;}public User getUser() {return user;}public void setUser(User user) {this.user = user;} }
LoginAction-validation.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd"><validators> <field name = "user"> <field-validator type = "visitor"> <!-- 指定校验规则的文件context --> <param name = "context">userContext</param> <!-- 指定校验失败后的提示信息是否添加下面的前缀 --> <param name = "appendPrefix">true</param><!-- 默认为true --> <message>用户的:</message> </field-validator> </field></validators>为User属性配置单独的校验文件,默认的文件名应为User-validation.xml,因为在LoginAction-validation.xml文件中指明了visitor的context属性userContext,因此校验文件名应为User-userContext-validation.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd"> <validators> <field name="username"><field-validator type="requiredstring"><param name="doTrim">true</param><message>用户名不能为空</message></field-validator></field></validators>该配置文件需要和User.java在同一目录下,否则校验器不起作用
阅读全文
0 0
- struts2--详细了解struts2框架的校验器
- Struts2框架的校验器
- Struts2框架的校验器
- 基于struts2框架的校验
- 使用struts2的校验框架
- struts2的校验器
- struts2的校验器
- struts2 校验框架总结
- Struts2中的校验框架
- struts2 校验框架
- Struts2中的校验框架
- Struts2中的校验框架
- Struts2中的校验框架
- struts2校验框架
- Struts2中的校验框架
- struts2 校验框架总结
- struts2-校验框架
- struts2框架校验
- 原生js实现数组去重的5种方法
- 华为抢了腾讯的利益,腾讯却拿用户数据说事
- 非wifi用户选在图片加载模式
- vxWorks中系统任务tIsr的实现及使用
- kali 网络配置
- struts2--详细了解struts2框架的校验器
- 事件内核对象Event
- 用变量定义模式匹配字符串时,用单引号和双引号的区别
- 华中、华北、华南、西北、东北、西南、华东各包括的省市
- SharePoint Server 2016 中的数据库类型和说明
- tmpfs介绍
- centos7下kafka集群搭建
- Argestes and Sequence HDU
- CUDAArray的数据存储顺序