注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

骇客归来

ぁ枫あ

 
 
 

日志

 
 

struts2自定义集合验证  

2009-02-18 17:36:31|  分类: Struts2 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

struts2自定义集合验证

首先我们需要继承FieldValidatorSupport类,然后我们重写他的validate方法
validate
package com.opensymphony.xwork2.validator.validators;

import com.opensymphony.xwork2.validator.ValidationException;

public class ListPropertyValidator extends FieldValidatorSupport {
 public void validate(Object object) throws ValidationException {
  String fieldName = getFieldName();//userList[$i].username
  Object value = this.getFieldValue("userList[0].username", object);//here is very important
  System.out.println(value);

  if ((minLength > -1) && (val.length() < minLength)) {
             addFieldError(fieldName, object);
         } else if ((maxLength > -1) && (val.length() > maxLength)) {
             addFieldError(fieldName, object);
         }
 }
}


上面的过程还不完整,需要通过一种

Action code:
public class DemoAction extends ActionSupport {
 private List<User> userList;
}


User code:
public class User implements Serializable {
 private String username;
 private String password;
 private String gender;
 //省略了getter, setter
}

Xml Configuration:
<?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="userList[$i].username">
  <field-validator type="listproperty">//这里需要设计出一种比较优雅的配置方式来进行验证集合类的元素
   <message key="devices.add.guest.guestid.required"></message>
  </field-validator>
 </field>
</validators>

追加默认的验证器:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
        "-//OpenSymphony Group//XWork Validator Config 1.0//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">
<!-- START SNIPPET: validators-default -->
<validators>
    <validator name="listproperty" class="com.opensymphony.xwork2.validator.validators.ListPropertyValidator"/>
</validators>

  评论这张
 
阅读(787)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018