Validator+OGNL

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