持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情
前言
本教程是 Struts2 框架提供的校验实现,共有两种方式,个人推荐第二种方式,使得 action 和 validate 分离的更加清晰,供大家参考学习。
方式一
通过validate方法来实现,只需在LoginAction.java中重写 validate 方法即可,缺点是没有将java代码与校验代码分离。
1、实现思路
- 1.首先创建一个项目,名为 StrutsTest
- 2.创建一个包存放 Struts,创建类,命名为 LoginAction.java
- 3.在该包下,创建一个 xml 文件,名为 struts.xml
- 4.把 jar 包导入 lib 目录下
- 5.在 web.xml 中配置过滤器
- 6.创建一个实体类 User,其中的属性值与 form 表单提交的数据保持一致
- 7.编写validate方法
- 8.关键代码如下:
2、具体实现
在LoginAction,编写一个方法,判断是否用户名为空,并addFieldError,提示信息。
3、LoginAction
public void validate(){
if(user.getUserName()==null||user.getUserName().trim().equals(" ")){
addFieldError(user.getUserName(), "用户名不能为空");
}
方式二(推荐)
通过Action+validation.xml配置来实现,只需在LoginAction同级目录下面创建规范命名的xml文件即可,优点目录结构清晰。
1、实现思路
- 1.首先创建一个项目,名为 StrutsTest
- 2.创建一个包存放 Struts,创建类,命名为 LoginAction.java
- 3.在该包下,创建一个 xml 文件,名为 struts.xml
- 4.把 jar 包导入 lib 目录下
- 5.在 web.xml 中配置过滤器
- 6.创建一个实体类 User,其中的属性值与 form 表单提交的数据保持一致
- 7.在LoginAction包下创建LoginAction-validation.xml编写校验规则
- 8.关键代码如下:
2、具体实现
在LoginAction 同级包下创建 LooginAction-validation.xml 编写校验规则,如requiredstring校验器等。
3、LoginAction-validation
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
<!--
校验方式二
Action命名+validation.xml
-->
<!-- 需要校验的字段的字段名 -->
<field name="user.userName">
<!--验证字符串不能为空,即必填-->
<field-validator type="requiredstring">
<!--去空格-->
<param name="trim">true</param>
<!--错误提示信息-->
<message>用户名必须填!</message>
</field-validator>
</field>
<!-- 邮箱校验 -->
<field name="user.email">
<field-validator type="email">
<message>请输入有效邮箱地址</message>
</field-validator>
</field>
<!-- 年龄校验等等 -->
<!-- <field name="user.age">
<field-validator type="int">
<param name="min">0</param>
<param name="max">100</param>
<message>请输入有效年龄</message>
</field-validator>
</field> -->
</validators>
实现效果
主页面:
当校验失败时:
校验成功之后:
总结
以上就是Struts2框架为我们提供的校验的,只需增加校验配置文件,就可以完成对数据的校验,方便了我们的开发,除此之外,Struts2还为我们提供了大量的其他表单校验和非表单校验。