 |
|
| 1 2 次のページ |
 |
| コンポーネントとマネージドBeanのバインディング |
最後に、コンポーネントとマネージドBeanのバインディングを行います。まず、プロパティ・インスペクタでinput.jspの入力コンポーネントのvalue属性を、それぞれ表1にしたがって書き換えます。
| コンポーネントID | value属性に記述するバインディング式 | | birthYear | #{userInfo.birthYear} | | birthMonth | #{userInfo.birthMonth} | | birthDay | #{userInfo.birthDay} | | sex | #{userInfo.sex} | | bloodType | #{userInfo.bloodType} |
表1:input.jspの各コンポーネントに指定する値バインディング
例として、birthYearのバインディングの指定を図1に示しました。
 図1:birthYearへのバインディング指定 (画像をクリックすると別ウィンドウに拡大図を表示します) JSFタグの属性に値バインディング式を記述すると、Update Model Valueフェーズで、値バインディング式を指定した入力コンポーネントの入力値が指定されたマネージドBeanのプロパティに格納されるとともに、Render Responseフェーズで指定されたプロパティの値が出力されます。
次に、「占う」ボタンのaction属性にメソッドバインディング式(#{fortuneTellingService.doFortuneTelling})を指定し、マネージドBeanとしてJSF変数のfortuneTellingServiceに格納されているFortuneTellingServiceオブジェクトのdoFortuneTelling()メソッドがボタンのクリックに伴って呼び出されるようにします。ここでメソッドバインディング式という言葉が出てきましたが、これはBeanのプロパティではなく、Beanに記述されたメソッドを参照する記述です。
値バインディングとメソッドバインディングは、見た目の違いはまったくありませんが、参照する対象が異なることから呼び方を区別しています。
output.jspには、最初の手順でダミーとして「***」という文字列を入れていた部分に、次の結果を取得する値バインディング式を記述します。
#{fortuneTellingService.result} |
「他の人を占う」ボタンは、「占う」ボタンと同様にFortuneTellingServiceオブジェクトのdoRetry()メソッドがアクションメソッドとして呼び出されるように、次のメソッドバインディング式を指定します。
#{fortuneTellingService.doRetry} |
以上で、JSFによる本格的な占いアプリケーションが完成しました。最終的なJSPのソースコードをリスト1(input.jsp)をリスト2(output.jsp)に示します。
リスト1:input.jsp(完成版) (画像をクリックすると別ウィンドウに拡大図を表示します) リスト2:result.jsp(完成版)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ page contentType="text/html;charset=windows-31j"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <f:view> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"></meta> <title> result </title> </head> <body> <h:form> <h:panelGrid> <h:outputText value="あなたのラッキー周辺機器は:"/> <h:outputText value="#{fortuneTellingService.result}"/> <h:outputText value="です。"/> <h:commandButton value="別の人を占う"action="#{fortuneTellingService.doRetry}"/> </h:panelGrid> </h:form> </body> </html> </f:view>
|
|
1 2 次のページ
|
 |

| 著者プロフィール 著者:WINGSプロジェクト 佐藤治夫(株式会社ビープラウド)、 小泉守義 監修:山田祥寛 WINGSプロジェクトは、有限会社WINGSプロジェクト(代表取締役山田祥寛)が運営するライティング・チーム。海外記事の翻訳から、主にサーバサイド分野の書籍/雑誌/Web記事の執筆、講演、アプリケーション開発などを幅広く手がける。2006年7月時点での登録メンバーは20名で、現在も一緒に執筆をできる有志を募集中。執筆に興味のある方は、どしどし応募いただきたい。
|
|
 |
|