Struts2验证框架(声明式验证)

网友投稿 682 2022-09-01

Struts2验证框架(声明式验证)

Struts2验证框架(声明式验证)

​​说明​​​​struts2验证框架​​​​struts2验证框架所需要的jar包​​​​使用方式​​

​​在Strutsxml中配置input视图​​​​xml配置​​

​​例子​​

1.说明

jsp表单中经常会出现数据类型转换错误,转换失败后会出现

失败后的解决方法就是配置回显结果视图,从哪里来就回到哪里去。

我们知道继承了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时才能验证通过。验证不通过时产生一个动作错误,因此要显示该错误,需要使用​​<s:actionerror/>​​标签

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 主要配置过滤器

/index.jsp /success.jsp

5.4UserAction.java 提供注册功能的action

public class UserAction extends ActionSupport implements ModelDriven{ /** * */ private static final long serialVersionUID = 1L; private User user=new User(); @Override public User getModel() { return user; } public String register(){ System.out.println("注册成功!"); return SUCCESS; } public User getUser() { return user; } public void setUser(User user) { this.user = user; }}

当程序执行到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小时内删除侵权内容。

上一篇:Jpanel更新面板内容
下一篇:后端开发PHP入门必备(php入门开发实战)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~