app开发者平台在数字化时代的重要性与发展趋势解析
682
2022-09-01
Struts2验证框架(声明式验证)
说明struts2验证框架struts2验证框架所需要的jar包使用方式
在Strutsxml中配置input视图xml配置
例子
1.说明
失败后的解决方法就是配置回显结果视图,从哪里来就回到哪里去。
我们知道继承了ActionSupport类后会有一个validate方法,我们可以重写这个方法进行编程式验证。
@Override public void validate() { if(StringUtils.isEmpty(user.getUsername())){ addFieldError("username", "请输入用户名"); } }
validate方法实现验证的原理是当程序执行到Action时,先判断Action有没有实现validate方法,如果已经实现了,就先执行validate方法,然后执行execute方法,如果还没有实现,就直接执行execute方法。 但编程式验证有一个弊端就是硬编码。
2.struts2验证框架
3.struts2验证框架所需要的jar包
这些jar包都是使用Struts2框架最基本的jar包
4.使用方式
在Struts.xml中配置input视图
xml配置
验证器的xml命名方式: - (全局验证)针对动作类中所有动作进行验证:ActionClassName-validation.xml - (局部验证)针对动作类中某个动作进行验证:ActionClassName-ActionName-validation.xml 需要注意的是 这里的ActionName是struts.xml中配置的action标签中的name值,不是action类中的方法名 - xml需放在动作类所在的包中
各校验器的功能说明如下:
名称 | 功能 |
required | 用来验证某个给定的字段的值不是null。注意,空字符串不是null |
requiredstring | 验证给定的字段的值既不是null、也不是空格 |
int | 用来验证某个字段的值是否可以被转换为一个整数。若指定参数,还验证是否在允许的范围内 |
long | 用来验证某个字段的值是否可以被转换为一个长整数。若指定参数,还验证是否在允许的范围内 |
short | 用来验证某个字段的值是否可以被转换为一个短整数。若指定参数,还验证是否在允许的范围内 |
double | 用来验证某个字段的值是否可以被转换为一个双精度浮点数。若指定参数,还验证是否在允许的范围内 |
date | 用来确保给定的日期字段的值落在一个给定的范围内 |
expression | 用于验证是否满足一个OGNL表达式。这是一个非字段的验证。只有给定的参数的返回值是true时才能验证通过。验证不通过时产生一个动作错误,因此要显示该错误,需要使用 |
fieldexpression | 用于验证某个字段是否满足一个OGNL表达式。这是一个基于字段的验证。只有给定的参数的返回值是true时才能验证通过。验证不通过时产生一个字段错误 |
email | 用来验证给定的字段是否符合一个Email的规范 |
url | 用来验证给定的字段值是否是一个合法的URL地址 |
visitor | 该验证程序可以提高代码的可重用性,你可以利用它把同一个验证程序配置文件用于多个动作 |
conversion | 校验字段是否发生转换错误 |
stringlength | 用来验证一个非空的字段值是不是有足够的长度 |
regex | 用来检查给定字段是否与给定的正则表达式相匹配 |
下面用一个小例子来说明struts2验证器的使用
5.例子
要求如下:
5.1.User.java
public class User { private String username;//不能为null和空字符串。要trim private int age;//整数:介于18-100之间 private String email;//按格式输入 private String password;//长度3~8位 private String repassword;//确认密码 必须和密码一致 private int score;//必须是数字 private String uri;//个人主页,必须符合uri的格式 private String gender;//性别 必须选择一个 /*省略get和set方法*/
5.2web.xml 主要配置过滤器
5.4UserAction.java 提供注册功能的action
public class UserAction extends ActionSupport implements ModelDriven
当程序执行到UserAction还没执行到register方法时进而拦截,从而跳转到UserAction-register-validation.xml进行校验,只有校验成功才会回到register方法,否则进入input视图。
5.5UserAction-register-validation.xml
5.6index.jsp 注册提交页面,使用了struts2的s标签
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib uri="/struts-tags" prefix="s"%>
运行结果
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~