struts2中的各种各样的内建校验器的小例子

2024-05-16 15:18

本文主要是介绍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中的各种各样的内建校验器的小例子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995278

相关文章

校验码:奇偶校验,CRC循环冗余校验,海明校验码

文章目录 奇偶校验码CRC循环冗余校验码海明校验码 奇偶校验码 码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据检验码的码距。 奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。 奇校验:整个校验码中1的个数为奇数 偶校验:整个校验码中1的个数为偶数 奇偶校验,可检测1位(奇数位)的错误,不可纠错。

JavaFX环境的搭建和一个简单的例子

之前在网上搜了很多与javaFX相关的资料,都说要在Eclepse上要安装sdk插件什么的,反正就是乱七八糟的一大片,最后还是没搞成功,所以我在这里写下我搭建javaFX成功的环境给大家做一个参考吧。希望能帮助到你们! 1.首先要保证你的jdk版本能够支持JavaFX的开发,jdk-7u25版本以上的都能支持,最好安装jdk8吧,因为jdk8对支持JavaFX有新的特性了,比如:3D等;

struts2中的json返回指定的多个参数

要返回指定的多个参数,就必须在struts.xml中的配置如下: <action name="goodsType_*" class="goodsTypeAction" method="{1}"> <!-- 查询商品类别信息==分页 --> <result type="json" name="goodsType_findPgae"> <!--在这一行进行指定,其中lis是一个List集合,但

javaScript日期相加减例子

当前时间加上2天 var d = new Date(“2015-7-31”); d.setDate(d.getDate()+2); var addTwo=d.getFullYear()+”年”+(d.getMonth()+1)+”月”+d.getDate()+”日”; “控制台输出===============”+”当前日期加2天:”+addTwo; 使用这种方法,月份也会给你计算.

struts2的时候

在使用struts2的时候,我们在jsp中经常写这样的代码片段:      学生姓名:            考试名称:            考试分数:         其中studentScores.student.stuName是对应后台action的熟悉,action是这样写的   public class StudentExamAc

设计模式大全和详解,含Python代码例子

若有不理解,可以问一下这几个免费的AI网站 https://ai-to.cn/chathttp://m6z.cn/6arKdNhttp://m6z.cn/6b1quhhttp://m6z.cn/6wVAQGhttp://m6z.cn/63vlPw 下面是设计模式的简要介绍和 Python 代码示例,涵盖主要的创建型、结构型和行为型模式。 一、创建型模式 1. 单例模式 (Singleton

JSP 简单表单显示例子

<html><!--http://localhost:8080/test_jsp/input.html --><head><meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"><title>input页面</title></head><body><form action="input.jsp" method

shell循环sleep while例子 条件判断

i=1# 小于5等于时候才执行while [ ${i} -le 5 ]doecho ${i}i=`expr ${i} + 1`# 休眠3秒sleep 3doneecho done 参考 http://c.biancheng.net/cpp/view/2736.html

Struts2常用标签总结--转载

Struts2常用标签总结 一 介绍 1.Struts2的作用 Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。 Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于

web登录校验

基础登录功能 LoginController @PostMapping("/login")Result login(@RequestBody Emp emp) {log.info("前端,发送了一个登录请求");Emp e = empService.login(emp);return e!=null?Result.success():Result.error("用户" +"名或密码错误");