Struts 1自定义验证器

时间:2011-11-18 07:05:58

标签: validation struts

我需要编写自定义验证器,它只会检查字符串数组是否存在格式错误的数据。这个数组当然来自form作为属性,实际上它的值来自于通过html:multibox标签的请求(这些是字符串形式的元素的简单ID)。所以我想验证这些数据。

问题是官方指南对处理非字符串属性没什么好说的。我不知道如何检索这个数组。

以下是struts valiator指南的示例:

public static boolean validateTwoFields(
Object bean,
ValidatorAction va, 
Field field,
ActionErrors errors,
HttpServletRequest request, 
ServletContext application) {

String value = ValidatorUtils.getValueAsString(
    bean, 
    field.getProperty());
String sProperty2 = field.getVarValue("secondProperty");
String value2 = ValidatorUtils.getValueAsString(
    bean, 
    sProperty2);

if (!GenericValidator.isBlankOrNull(value)) {
   try {
      if (!value.equals(value2)) {
         errors.add(field.getKey(),
            Resources.getActionError(
                application,
                request,
                va,
                field));

         return false;
      }
   } catch (Exception e) {
         errors.add(field.getKey(),
            Resources.getActionError(
                application,
                request,
                va,
                field));
         return false;
   }
}

return true;

}

正如您所看到的,这完美地解释了如何处理字符串值,但其他类型呢?

1 个答案:

答案 0 :(得分:0)

我认为,您应该使用PropertyUtils.getProperty(),然后使用返回的Object。您可以看到以下链接中提到的示例:

http://www.webkaifa.com/jsp/jakartaStrutsCookbook/059600771x/jakartastrutsckbk-chp-8-sect-9.html