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"/>