やるべきことは以下のような感じ。
- get + <id> + Validatorでメソッドを作る。
- 複数のValidator使いたい場合はValidatorChainを使う。
- Validatorメソッドが呼ばれるのはPageクラスに値がセットされる前なのでプロパティの値を使いたい場合はjava.util.Mapなparamプロパティを用意する。
fugaFormのbarテキストはfooに値が入っているときのみ必須とかしたい場合は以下のような感じ。
Page [hoge.html]:
<form id="fugaForm"> <input id="foo" type="text" /> <input id="bar" type="text" /> </form>Pageクラス [HogePage.java]:
class HogePage {
public String foo;
public String bar;
public Map param;
public validator getBarValidator() {
ValidatorChain validatorChain = new ValidatorChain();
String foo = (String)param.get("fugaForm:foo");
if (foo != null && !foo.empty()) {
validatorChain.add(new TRequiredValidator());
}
TLengthValidator lengthValidator = new TLengthValidator();
lengthValidator.setMaximumLength(...);
validatorChain.add(lengthValidator);
return validatorChain;
}
}
[参考]
http://teeda.seasar.org/ja/extension/reverse/validation.html#ダイナミックバリデータを使用するには
http://d.hatena.ne.jp/Leblanc/20071122/1195702264
0 件のコメント:
コメントを投稿