Struts2的输入验证

一.验证分类:

1. 服务器端验证(Java代码来完成验证(Struts的内置验证框架,可以完成服务器端验证))。

2. 客户端验证(js验证——在客户端执行,执行的时候依赖与客户度(手动js验证,jquery验证框架进行验证))

二.Struts的内置验证框架:

Struts2中验证有两种方式:

1. 手动验证。

2. 配置验证框架,自动验证。

三.内置验证框架使用步骤:

1. 需要验证的Action必须继承自ActionSupport类。

2. 创建验证配置文件。

要求:a) 配置文件必须和action在同一目录。

      b) 文件名的格式必须是:Action类名-validation.xml(验证Action中的所有方法) 

                             Action类名-访问Action的名字-validation.xml(只会验证Action中指定的方法)

3. 查看内置验证器:xwork-XXXXX.jar目录中(找到default.xml配置文件)

特别需要注意:

1. 使用了验证器之后,如果验证失败;必须配置<result name=input></result>表示验证失败之后,跳转的页面。

2. 如果jsp页面中使用了,Struts的标签;那么必须让这个jsp页面必须经过struts的核心过滤器,进行过滤;否则页面不能正常解析struts的标签。

3. 基本数据类型,不能使用Struts的内置验证,建议使用包装类。

四.手动验证步骤:

1. 继承ActionSupport,重写validate()方法。

在执行Action中具体的方法之前,会先执行validate()方法;如果有错误,则返回input指定的页面。(有错误:super.addFiledError()

手动验证总结:

1. 可以在实体中的setXxx()方法进行控制。

2. validate()方法中进行验证。

在struts2中进行类型转换  

在该字段的实体中

private Integer age;

public Integer getAge() {
  return age;
 }

 public void setAge(Object age) {
  String str_age = age+"";
  
  if(str_age.matches("[0-9]+")){
   this.age = Integer.parseInt(str_age);
  }
  else{
   this.age = 0;
  }
 }