JSF-Faceletsの作成

JSFの画面表示の部分をFaceletsで作成する。
HTMLのようにタグで記述する。

ファイル→新規ファイルからFaceletsを作成する。
プロジェクトに-warの名前のプロジェクトを選び、カテゴリ:JavaServer? FacesのJSFページを選択し、次へ。

#ref(): File not found: "jsf1.gif" at page "JSF-Faceletsの作成"


クラス名を入力し、終了をクリック。
オプションにFaceletsとJSPがありどちらも使用できるが、Faceletsの使用が推奨される。

#ref(): File not found: "jsf2.gif" at page "JSF-Faceletsの作成"


ソースコードの型枠が生成される。

#ref(): File not found: "jsf3.gif" at page "JSF-Faceletsの作成"


Faceletsのコードを入力する。

htmlタグに使用するタグライブラリを宣言する。ここでは後で使用するプレフィックス(hやcやf)をつける。
プレフィックスは標準的な名称を利用することが推奨される。
タグライブラリのURLはCtrl+Spaceで候補を表示し、入力できる。

     xmlns:h="http://xmlns.jcp.org/jsf/html"
     xmlns:c="http://java.sun.com/jsp/jstl/core"
     xmlns:f="http://xmlns.jcp.org/jsf/core"

タグはc:forEachのようにプレシックス:タグ名の形で、入力する。

forEachタグは繰り返し処理を行う。
Javaのfor(Message m: messageBoard.getMessages())と同等である。

JSFでは#{ManagedBean?名.フィールド}または#{ManagedBean?名.メソッド}で、ManagedBean?にアクセスする。
ManagedBean?名は前回@Namedアノテーションで指定した名称を使用する。(クラス名そのままではない)

h:outputTextタグで項目を表示する。表示内容はvalue属性で指定する。

f:convertDateTime?タグは、日付の文字表現を指定する。pattern属性に表記のフォーマット、timeZone属性に"JST"のような標準時を指定する。
フォーマットはSimpleDateFormatクラスのドキュメントを参照。

       <c:forEach var="m" items="#{messageBoard.messages}">
           <h:outputText value="#{m.id}"/>:
           <h:outputText value="#{m.writetime}">
               <f:convertDateTime pattern="yyyy/MM/dd(E) hh:mm:ss" timeZone="JST"/>
           </h:outputText><br/>
           #{' '}<h:outputText value="#{m.message}"/><br/><br/>
       </c:forEach>

入力項目と送信ボタンを同じフォームに作成する。
h:inputTextareaはテキストエリアを表示するタグである。対応する項目をvalue属性に指定する。
h:commandButtonは送信ボタンを表示するタグである。action属性にボタンが押されたときに実行するManageBean?のメソッドを指定する。

       <h:form>
           <h:inputTextarea value="#{messageBoard.message}"/><br/>
           <h:commandButton value="書き込む" action="#{messageBoard.writeMessage}"/>
       </h:form>

コメント



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS