Hibernate Validators
Hibernate Validatorsは、小規模ながら非常に有用なプロジェクトです(その名称とは裏腹にHibernateライブラリそのものには結びつけられていません)。Hibernate Validatorsは基本的にJPAエンティティ用のバリデータを追加するものです(図3を参照)。具体的には、たとえば次のような新しいバリデータを指定できます。
@Length(min/max)
@Max(value=)
@Min(value=)
@NotNull
@NotEmpty
(文字列用)@Pastと@Future
(日付用)@Pattern
(正規表現ベースの検証用)@Range(min=,max=)
詳細については、Hibernate Validatorsのマニュアルを参照してください。
Hibernate ValidatorsはSeamランタイムに含まれているので、新しいSeam Webプロジェクトのclasspathに自動的に追加されます。コードの中でHibernate Validatorsを使用し、それらをSeamとなめらかに統合するためには、次の例のように組み込みSeamタグ<s:validateAll>
を使用する必要があります。
<h:form> <div> <h:messages/> </div> <s:validateAll> <div> Country: <h:inputText value="#{location.country}" required="true"/> </div> <div> Zip code: <h:inputText value="#{location.zip}" required="true"/> </div> <div> <h:commandButton/> </div> </s:validateAll> </h:form>
Seamにおけるフォーム検証の詳細については、フォーム検証のチュートリアルを参照してください。
JBoss EJB 3.0 Application Server
Seamは初期リリースではJBoss Seamと呼ばれており、JBoss Application Server(AS)と密接に結びつけられていました。しかし、SeamチームはSeamがJBossプラットフォームの枠外にも普及することを望んでいたので、名称を単なるSeamに変え、非JBossサイトとしてseamframework.orgを作成しました。
とはいえ、SeamはJBoss ASと最も相性がよく、JBoss ASはSeamアプリケーションの開発で最もよく使用される環境です。私はSeamアプリケーションをGlassfishにデプロイできましたが、多くのコンフィグレーションが必要でした(とりわけ、「web.xml」ファイルで、すべてのEJB JSFマネージドbeanを手動でEJBリファレンスとして登録しなければなりませんでした)。
JBoss AS上でSeam 2.0.1を使用してアプリケーションを開発するためには、JBoss Application Server 4.2.2をダウンロードする必要があります。意外なことに、デフォルトバージョンであるSeam 1.2.1は、このバージョンのJBoss ASとはあまり相性がよくないようです(私が試したときには、Apache MyFacesに関連するデプロイエラーが発生しました)。これはおそらく、バージョン4.2以降のJBoss ASはSunのJSFリファレンス実装を使用し、停滞しているApache MyFaces実装を含めるのをやめたからでしょう。