struts2控制校验validator的两种用法

来源:互联网 发布:激光切割机绘图软件 编辑:程序博客网 时间:2024/05/29 14:07

    目前自己正在学习框架,发现写博客确实是一个非常好的方法,所以决定利用博客,把自己学到的知识记录下来,也方便自己学习,同时也能锻炼自己的写作能力,此文仅供参考。

      有两种方法,方法一:

       想对简单,只需在xml文件配置即可。但是xml文件名格式必须是:(对应的action-validation.xml) 放置位置,和对应的action在同样的位置下。代码如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators><field name="user.firstname"><field-validator type="requiredstring"><message>required first name</message></field-validator></field><field name="user.age"><field-validator type="required"><message>required age</message></field-validator><field-validator type="int"><param name="min">1</param><param name="max">150</param><message>age should be between ${min} and ${max}</message></field-validator></field></validators> 

注:user是对应action中对象的调用,代码如下
public class SaveUserAction extends ActionSupport{private User user;public User getUser(){return user;}public void setUser(User user){this.user = user;}

方法2相对方法1来说,相对较难,需要配置两个xml文件

校验方式,是的struts2提供的visitor方法的校验,代码如下,在saveUserAction-validation.xml配置如下

注:appendPrefix和下面的message信息是同时出现的,如果 设置为true 那么提示的附加信息会加上前缀,即message中的信息。

   context 上下文,即有具体的校验文件来访问属性,即需要制定另外一个xml文件。另一个xml文件在对应要校验信息对应的bean下,名字是三部分组成,小写user对应param里面的user,如图文件代码如下

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"><validators><field name="firstname"><field-validator type="requiredstring"><message>required first name</message></field-validator></field><field name="age"><field-validator type="required"><message>required age</message></field-validator><field-validator type="int"><param name="min">1</param><param name="max">150</param><message>age should be between ${min} and ${max}</message></field-validator></field></validators>

结果如下:

注:user's是输出的文件头信息,另外在allicationContext.xml中配置saveUserAction中scope为prototype,即防止在提交是,错误重复出现。每当使用action,会重新new,即在spring中配置的action中scope都用prototype.


 注:这也算是自己的学习笔记吧!