Struts2默认验证器、自定义验证器

一。struts2验证器的工作流程:


有关struts给我们提供的默认验证器可参考:http://blog.csdn.net/yongjian1092/article/details/7349606

二。用一个例子说明验证器的使用方法:

程序包图:


1.hello.jsp:程序入口


这里需要注意的是,我用一个obj实例来封装了User类里面的user和password属性,所以表单里要用obj.user来取值。

2.TestAction-invalidation.xml(起名方式是Class类名-invalidation.xml)

true 必须输入用户名 6 10 必须在长度是6~10之间 该文件必须和TestAction放在同一个目录下面,要万分注意!如有不明白请看上图。

2.创建struts.xml

/success.jsp /Hello.jsp
1)表单提交属性的时候由helloa这个Action来完成动作跳转,执行后返回SUCCESS字符串。这是正常情况

2)如果需输入错误,我们的验证器就起作用了


三。在struts2框架下,自定义验证器很容易。

1. 先创建一个类,用来写自定义的验证方法。下面是我写的MyValidate类

public class MyValidate extends FieldValidatorSupport{ public void validate(Object obj) throws ValidationException { // TODO Auto-generated method stub String name = super.getFieldName(); String value = super.getFieldValue(name, obj).toString(); System.out.println(name);System.out.println(value); super.addFieldError(super.getFieldName(), obj); } }

它继承FieldValidatorSupport类,重写validate()方法,验证规则就写在validate()方法里面。解释下里面关键的几点。super.getFieldName();获取xml验证中的需要验证的字段名。super.getFieldValue(name, obj).toString();获取表单提交的该字段的值。super.addFieldError(super.getFieldName(), obj);添加错误信息。运行下你就可以看到控制台打印出来的结果。


以上问题若有不明白的地方,请联系。


你可能感兴趣的:(Struts2默认验证器、自定义验证器)