2007年8月6日月曜日

JSF

Struts, Spring はそこそこやったので、JSF も使えるようになっておこうと挑戦してみる。
これといったよさげな書籍がなかったり、古かったりで少し億劫になっていた。
Sun の開発ツールで GUI で触っていたが、少しやってみたところで飽きてしまっていた。
Sun One Studio Creator (?) 等ではどうしても画面ががちがちのレイアウトに縛られて
いるように見えてしまったのも興味をそいだ原因かも。

基本的には faces-config.xml で ManagedBean と navigation rule 等を定義、ManagedBean
は名前とクラスメイト、スコープを最低限定義、navigation rule は from view id に
対して navigation-case を指定して、action の結果に応じて進める view を決める。
form-action を明示的に指定する場合はいいのだが、指定しないといつも success が
返るのだろうか...

ManagedBean 自体は POJO のようなものでも動くし、EJB や何らかの integration を
つかって Model を呼び出せる。

View は JSP が前提となるのか、Tiles, Velocity 等が使えるのか、外部のプラグイン
等が必要なのか要調査。

デフォルトでは (NetBeans では) Faces Servlet が /faces/* にマップされている。
実際には直下においた jsp はそのままのパスではアクセスできず、/faces/ をつけると
アクセスできる。というか、パスの変換が行われているようだ。
斜め読みだが WEB-INF の下には(デフォルトでは?)アクセスできないので、
配置の仕方に注意。

.jsp が URL になってしまうのは格好が悪い気がしたが、これは
javax.faces.DEFAULT_SUFFIX パラメータで変更できる。このパラメータを
探していると Facelet, Apache Faces 等の技術を見つける。これらも
時間を見て勉強しよう。

Seasor2 も見はじめていたが、S2JSF というコンポーネントでは View に
JSF を使う。web.xml でだいぶカスタマイズして(これくらいは実プロジェクト
では当然?)使っている。

0 件のコメント: