validatorの拡張(覚書)
拡張クラスの作成
org.apache.struts.validator.FieldChecksクラスを継承して作成。
public class Hoge extends FieldChecks { public static Object validateHoge(Object bean, ValidatorAction va, Field field, ActionMessages errors, Validator validator, HttpServletRequest request) { String value = null; if (isString(bean)) { value = (String) bean; } else { value = ValidatorUtils.getValueAsString(bean, field.getProperty()); } String hoge = field.getVarValue("hoge"); // 何かしらのチェックやら、処理やら if (hoge.equals("hoge")) { return Boolean.TRUE; } else { errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field)); return Boolean.FALSE; } } }
validator-rules.xmlに定義を追加
<validator name="myhoge" classname="ExHogeValidata" method="validateHoge" methodParams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest" depends="" msg="errors.hoge" jsFunctionName="HogeValidations"/>