2007年8月10日金曜日

TeedaでURLのバリデーション

スズキです。

そろそろ、TeedaもRequired以外のバリデーションをためさなきゃ、
ってことで、URLをチェックするものをやってみました。
(まあ、案件でニーズがあったからですが)

で、どうやったかというと、今回は、
正規表現バリデーター(RegularExpression)を使いました。
(自分でValidatorクラス作るのは次回ということで)

当然、URLをチェックする正規表現が必要となりますが、
こちらから拝借。
http://www.pahoo.org/e-soul/webtech/php05/php05-02-01.shtm

最後に、バリデーションに引っかかった時のメッセージを変更ですが、
これはアノテーションの属性"messageId"で制御できます。
値はappMessages.propertiesのプロパティ名で、
そのプロパティの値がメッセージとなります。

上記をふまえると、Pageクラスの該当部分はこうなります。
--------XxxPage
...
@RegularExpression(
  messageId="jp.co.iret.suz.example.teeda.validator.url",
  pattern = "https?:\\/\\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+"
)
private String url;
...
--------

自分でValidator作れるようにならなきゃ。

(ソース/リソース)
▼HTML
http://suz-lab.googlecode.com/svn/trunk/suz-example-teeda/src/main/webapp/view/validator/validatorEntry.html
▼Pageクラス
http://suz-lab.googlecode.com/svn/trunk/suz-example-teeda/src/main/java/jp/co/iret/suz/example/teeda/page/validator/ValidatorEntryPage.java
▼appMessages_ja.properties
http://suz-lab.googlecode.com/svn/trunk/suz-example-teeda/src/main/resources/appMessages_ja.properties

--
blog: http://suz-lab.blogspot.com/

0 コメント: