本文主要是介绍struts2中的各种各样的内建校验器的小例子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我在这里举了required(必填非空)、requiredstring(必填字符串)、int(整型)、date(日期)、email(邮件)、url(网址)、vistor(用于检测对象中的属性的不同)和conversion(用于检测类型转换是否转换成功),expression和fieldexoression这两个我不懂为什么总是不成功,就先不弄了
首先我们需要一个jsp文件,用来输入数据;之后我们要一个validation.xml文件来配置校验器,还需要两个类,一个是action类,里面有jsp文件中表单所提交的所有属性,另一个类是用来测试visitor对象是否能够判定类的内容。
这里是jsp文件的内容
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><s:form action="testvalidatior"><s:textfield name="testRegex" label="校验regex"/><s:textfield name="testStringlength" label="校验stringlength"/><s:textfield name="testConversion" label="校验Conversion"/><s:textfield name="testUser.name" label="校验user.name"/><s:textfield name="testUser.pass" label="校验user.pass"/><s:textfield name="testUrl" label="校验url"/><s:textfield name="testEmail" label="校验email"/><s:textfield name="testRequired" label="校验required"/><s:textfield name="testRequiredstring" label="校验requiredstring"/><s:textfield name="testInt" label="校验int"/><s:textfield name="testDate" label="校验date"/><s:submit/></s:form></body>
</html>
下面的是action类的内容
package action;import java.util.Date;import com.opensymphony.xwork2.ActionSupport;import entity.User;public class TestValidator extends ActionSupport{private Date testRequired;private String testRequiredstring;private int testInt;private Date testDate;private String testEmail;private String testUrl;private User testUser;private int testConversion;private String testStringlength;private String testRegex;public String getTestRegex() {return testRegex;}public void setTestRegex(String testRegex) {this.testRegex = testRegex;}public String getTestStringlength() {return testStringlength;}public void setTestStringlength(String testStringlength) {this.testStringlength = testStringlength;}public int getTestConversion() {return testConversion;}public void setTestConversion(int testConversion) {this.testConversion = testConversion;}public User getTestUser() {return testUser;}public void setTestUser(User testUser) {this.testUser = testUser;}public String getTestUrl() {return testUrl;}public void setTestUrl(String testUrl) {this.testUrl = testUrl;}public String getTestEmail() {return testEmail;}public void setTestEmail(String testEmail) {this.testEmail = testEmail;}public Date getTestDate() {return testDate;}public void setTestDate(Date testDate) {this.testDate = testDate;}public int getTestInt() {return testInt;}public void setTestInt(int testInt) {this.testInt = testInt;}public String getTestRequiredstring() {return testRequiredstring;}public void setTestRequiredstring(String testRequiredstring) {this.testRequiredstring = testRequiredstring;}public Date getTestRequired() {return testRequired;}public void setTestRequired(Date testRequired) {this.testRequired = testRequired;}}
也就是jsp表单中的所有参数,接下俩就是validation.xml文件内容,有些说明我加在了代码注释中
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN""http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<!-- 字段校验器配置风格 --><validators><field name="testRegex"><field-validator type="regex"><param name="regex"><![CDATA[(\w{4,20})]]></param><message>来自正则表达是的错误信息:输入4~20长度的字符串</message></field-validator></field><field name="testStringlength"><!-- stringlength顾名思义可以判断字符串的长度 --><field-validator type="stringlength"><param name="minLength">2</param><param name="maxLength">10</param><message>请输入长度为2~10的字符串</message></field-validator></field><field name="testRequired"><!-- requeired可以判断字段是否有值,比如说date是否有值,不能判断String,因为上传上来的是"" --><field-validator type="required"><message>请输入日期</message></field-validator></field><field name="testRequiredstring"><!-- requiredstring可以判断字符串,比较常用的就是trim--><field-validator type="requiredstring"><param name="trim">true</param><message>请输入的内容</message></field-validator></field><field name="testInt"><!-- int可以对int类型的最大最小值进行判断 --><field-validator type="int"><param name="max">10</param><param name="min">1</param><message>请输入大于等于10并且小于等于1的一个整数</message></field-validator> </field><field name="testDate"><!-- date可以对日期进行最大最小的判断 --><field-validator type="date"><param name="min">1990-01-01</param><param name="max">1999-12-31</param><message>请输入一个九零后的生日</message></field-validator></field><field name="testConversion"><!-- conversion可以判断类型转换是否正确 --><!-- testConversion在类中是一个int类型的,以方便我们测试是否转换成功 --><field-validator type="conversion"><param name="repopulateField">true</param><message>请输入一个整数</message></field-validator></field><field name="testEmail"><field-validator type="email"><message>清输入一个正确的email地址</message></field-validator></field><field name="testUrl"><field-validator type="url"><message>请输入一个正确的url</message></field-validator></field><field name="testUser"><field-validator type="visitor"><!-- 指定校验规则文件的context --><param name="context">userContext</param><!-- 指定校验失败后提示信息是否添加下面前缀 --><param name="appendPrefix"></param><!-- 指定校验失败的提示前缀 --><message>用户的:</message></field-validator></field>
</validators>
这篇关于struts2中的各种各样的内建校验器的小例子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!