ValidatorでOGNLが使えたら便利かも…と思ったので、いい加減に実装を考えてみる。
妥当性チェックのコードがこんな感じ。
public static boolean validateIf(
Object bean,
ValidatorAction va,
Field field,
ActionMessages errors,
HttpServletRequest request) {
String exp = field.getVarValue("test");if (exp == null)
return false;Object result = null;
try {
result = Ognl.getValue(exp, bean);
} catch (OgnlException e) {
e.printStackTrace();
return false;
}return result != null && "true".equalsIgnoreCase(result.toString());
}
validation.xmlがこんな感じ。
<field property="foo" depends="if">
<var>
<var-name>test
<var-value>bar >= foo
</var>
</field>
2項目の比較には便利かも。今度、使ってみよう。
追記
てゆーかvalidwhenを使えばいいのか…orz