*JSF-Faceletsの作成 [#c078b7f1] JSFの画面表示の部分をFaceletsで作成する。~ HTMLのようにタグで記述する。~ ~ ファイル→新規ファイルからFaceletsを作成する。~ プロジェクトに-warの名前のプロジェクトを選び、カテゴリ:JavaServer FacesのJSFページを選択し、次へ。~ #ref(jsf1.gif)~ ~ クラス名を入力し、終了をクリック。~ オプションにFaceletsとJSPがありどちらも使用できるが、Faceletsの使用が推奨される。~ #ref(jsf2.gif)~ ~ ソースコードの型枠が生成される。~ #ref(jsf3.gif)~ ~ 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クラスのドキュメント>http://docs.oracle.com/javase/jp/6/api/java/text/SimpleDateFormat.html]]を参照。~ > <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"/> <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> *コメント [#e3d9bd31] #comment