我需要编写自定义验证器,它只会检查字符串数组是否存在格式错误的数据。这个数组当然来自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;
}
正如您所看到的,这完美地解释了如何处理字符串值,但其他类型呢?
答案 0 :(得分:0)
我认为,您应该使用PropertyUtils.getProperty(),然后使用返回的Object。您可以看到以下链接中提到的示例:
http://www.webkaifa.com/jsp/jakartaStrutsCookbook/059600771x/jakartastrutsckbk-chp-8-sect-9.html