一、Struts2输入校验介绍
Struts2的输入校验和类型转换都是对请求参数进行处理。
输入校验顾名思义就是请求参数是否能够满足一定的要求;
客户端校验&服务器端校验
客户端校验是指在浏览器这端通过Javascript进行初步校验,为了减轻服务器端的负载;
服务器端校验是校验数据的最后一道防线;
在Struts2中,数据校验不需要写任何代码,只需要一个配置文件,配置校验的条件就可以了,非常简单;因此数据校验文件是数据校验的最重要的内容;
二、数据校验规则文件
1.数据校验规则文件规则:
1.此文件中规定了参数的一些校验条件;
2.可以包括字段型校验器和非字段型校验器;
3.命名规则:ActionName-validation.xml,其中ActionName是Action类的名字;
4.每个Action都有一个validation文件,规则文件放在和Action同目录下;
5.在前面我们讲到的配置逻辑action中,如果需要对某个逻辑Action配置数据校验文件,则命名规则为:ActionName-LogicActionName-validation.xml;
6.注意:当需要对逻辑action进行校验时,如果存在一般形式的ActionName-validaton.xml文件,则也会对此逻辑Action进行校验;
7.输入校验失败后,和类型转换一样,会将错误封装成fieldError,并放入Action Context中,因此在JSP中添加<s:fielderror/>可显示错误,此内容也是我们在数据校验文件中配置的;
8.当输入校验失败后,和类型转换一样,返回逻辑视图为input,因此在struts.xml中必须配<result name="input"></input>
9.输入校验失败后,struts表单标签也会自动输出错误提示;
字段型校验器&非字段型校验器
字段型校验器:以每个Action属性为一个单位进行编写,即以如下风格编写:
属性1
规则1 规则2 属性2 规则1 规则2 |
非字段型校验器:以规则为一个单位,以如下风格编写:
规则1
属性 规则2 属性 规则3 属性 |
2.数据校验文件内容
1.数据校验文件以<validators>为根元素;
2.字段型校验器是以属性为单位的,内容模板:
- <validators>
- <field name="">
- <field-validator type="">
- <param name=""></param>
- <message></message>
- </field-validator>
- </field>
- </validators>
3.非字段型校验器是以校验器为单位的,内容模板:
- <validator type="">
- <param name="fieldName"></param>
- <param name=""></param>
- <message></message>
- </validator>
代码示例:
此段代码中分别对字符串、日期、整型、email进行数据校验;
Validation01Action.java
- package org.validation.action;
- import java.util.Date;
- import com.opensymphony.xwork2.ActionSupport;
- public class Validation01Action extends ActionSupport {
- private String name;
- private String email;
- private int age;
- private Date date;
- public String execute()throws Exception{
- return SUCCESS;
- }
- public String getName() {
- return name;
- }