*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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS