Seam には Seam での作業に便利な JSF コントロールがいくつか含まれています。 JSF コントロールにおけるビルドの補完が目的で、 他のサードパーティのライブラリからの管理を行います。 Seam と併用する際は、 Ajax4JSF 及び ADF (現在は Trinidad) タグライブラリの使用を推奨します。 Tomahawk タグライブラリの使用はお薦めできません。
これらのコントロールを使用するには、 以下のように使用するページで "s" ネームスペースを定義します (facelets 固有)。
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://jboss.com/products/seam/taglib">
この例ではタグをいくつか使用している例を示しています。
表 24.1. Seam JSF コントロールの参照例
<s:validate> | 詳細 非視覚的なコントロールです。 Hibernate Validator を使用してバウンドプロパティに対して JSF 入力フィールドを確認します。 属性 なし 使い方 <h:inputText id="userName" required="true" value="#{customer.userName}"> <s:validate /> </h:inputText> <h:message for="userName" styleClass="error" /> |
<s:validateAll> | 詳細 非視覚的なコントロールです。 Hibernate Validator を使ってそのバウンドプロパティに対しすべての子 JSF 入力フィールドを確認します。 属性 なし 使い方 <s:validateAll> <div class="entry"> <h:outputLabel for="username">Username:</h:outputLabel> <h:inputText id="username" value="#{user.username}" required="true"/> <h:message for="username" styleClass="error" /> </div> <div class="entry"> <h:outputLabel for="password">Password:</h:outputLabel> <h:inputSecret id="password" value="#{user.password}" required="true"/> <h:message for="password" styleClass="error" /> </div> <div class="entry"> <h:outputLabel for="verify">Verify Password:</h:outputLabel> <h:inputSecret id="verify" value="#{register.verify}" required="true"/> <h:message for="verify" styleClass="error" /> </div> </s:validateAll> |
<s:formattedText> | 詳細 Seam Text、 ブログに便利なリッチテキストマークアップ、 リッチテキストを使う可能性がある wiki やその他のアプリケーションを出力します。 使い方の全詳細については Seam Text の章を参照してください。 属性
使い方 <s:formattedText value="#{blog.text}"/> 例 ![]() |
<s:convertDateTime> | 詳細 Seam タイムゾーン内でデータ変換または時間変換を行います。 属性 なし 使い方 |
<s:convertEnum> | 詳細 enum コンバータを現在のコンポーネントに割り当てます。 おもにラジオボタンコントロール及びドロップダウンコントロールに役立ちます。 属性 なし 使い方 |
<s:convertEntity> | 詳細 エンティティコンバータを現在のコンポーネントに割り当てます。 おもにラジオボタンコントロール及びドロップダウンコントロールに役立ちます。 コンバータは 単複いずれかの @Id アノテーションを持つエンティティならいずれでも使用できます。 管理永続コンテキストが entityManager と呼ばれない場合、 components.xml で設定する必要があります。 属性 なし 設定 <component name="org.jboss.seam.ui.entityConverter"> <property name="entityManager">#{em}</property> </component> 使い方 <h:selectOneMenu value="#{person.continent}" required="true"> <s:selectItems value="#{continents.resultList}" var="continent" label="#{continent.name}" noSelectionLabel="Please Select..."/> <s:convertEntity /> </h:selectOneMenu> |
<s:enumItem> | 詳細 enum の値から SelectItem を作成します。 属性
使い方
|
<s:selectItems> | 詳細 List、 Set、 DataModel または Array から List<SelectItem> を作成します。 属性
使い方
<h:selectOneMenu value="#{person.age}" converter="#{converters.ageConverter}"> <s:selectItems value="#{ages}" var="age" label="#{age}" /> </h:selectOneMenu>
|
<s:graphicImage> | 詳細 拡張された <h:graphicImage> では Seam Component 内にイメージを作成できるようになり、 そのイメージに対してさらに変換を適用することができます。 Facelets 固有になります。 <h:graphicImage> のすべての属性がサポートされている他、 以下もサポートされています。 属性
変換 イメージに変換を適用するには、 適用する変換を指定するタグをネストさせます。 Seam は現在、 次のような変換をサポートしています。
独自の変換を作成するのも簡単です。 implementsorg.jboss.seam.ui.graphicImage.ImageTransform を行う UIComponent を作成します。 applyTransform() メソッド内で、 オリジナルのイメージを取得するためにimage.getBufferedImage() 、 変換されたイメージをセットするために image.setBufferedImage() をそれぞれ使用します。 このビュー内で指定されている順序に従って変換は適用されます。 使い方
|
<s:decorate> | 詳細 検証に失敗した場合または required="true" が設定されている場合、 JSF 入力フィールドを "Decorate" します。 属性 なし 使い方
|
<s:layoutForm> | 詳細 標準のフォームレイアウトを生成するためのレイアウトコンポーネントです。 各子コンポーネントは 1 列で処理され、 子コンポーネントが <s:decorate> の場合は追加のフォーマット化が適用されます。
属性 なし 使い方
<s:layoutForm> <f:facet name="aroundInvalidField"> <s:span styleClass="error"/> </f:facet> <f:facet name="afterInvalidField"> <s:message /> </f:facet> <f:facet name="beforeRequiredLabel"> <s:span>∗</s:span> </f:facet> <f:facet name="aroundLabel"> <s:span style="text-align:right;" /> </f:facet> <f:facet name="aroundInvalidLabel"> <s:span style="text-align:right;" styleClass="error" /> </f:facet> <s:decorate> <f:facet name="label"> <h:outputText value="Name" /> </f:facet> <h:inputText value="#{person.name}" required="true"/> <f:facet name="belowField"> <h:outputText styleClass="help" value="Enter your name as it appears on your passport" /> </f:facet> </s:decorate> </s:layoutForm>
![]() |
<s:message> | 詳細 検証エラーのメッセージで JSF 入力フィールドを "Decorate" します。 属性 なし 使い方
|
<s:span> | 詳細 HTML <span> をレンダリングします。 属性 なし 使い方
|
<s:div> | 詳細 HTML <div> をレンダリングします。 属性 なし 使い方
|
<s:fragment> | 詳細 レンダリングされないコンポーネントです。 その子コンポーネントのレンダリングを有効/無効にする場合に便利です。 属性 なし 使い方
|
<s:cache> | 詳細 JBoss Cache を使用してレンダリングされるページフラグメントの Cache です。 <s:cache> は実際にはビルトインの pojoCache コンポーネントで管理される JBoss Cache のインスタンスを使用するので注意してください。 属性
使い方
|
<s:link> | 詳細 対話伝搬の制御付きアクションの起動をサポートするリンクです。 フォームはサブミットしません。 属性
使い方
|
<s:button> | 詳細 対話伝搬の制御付きアクションの起動をサポートするボタンです。 フォームはサブミットしません。 属性
使い方
|
<s:selectDate> | 詳細 指定された入力フィールドの対して日付を選択する動的なデートピッカーコンポーネントを表示します。 selectDate エレメントのボディにはテキストやイメージなどの HTML エレメントが含まれるはずで、 ユーザーがデートピッカーを表示するためにクリックするよう指示します。 デートピッカーは CSS を使って表さなければなりません。 サンプルの CSS ファイルは date.css で Seam ブッキングデモ内にあります。 または、 seam-gen を使って生成することもできます。 デートピッカーの外観の制御に使用される CSS スタイルも以下に示します。 属性
使い方
<div class="row"> <h:outputLabel for="dob">Date of birth<em>*</em></h:outputLabel> <h:inputText id="dob" value="#{user.dob}" required="true"> <s:convertDateTime pattern="MM/dd/yyyy"/> </h:inputText> <s:selectDate for="dob" startYear="1910" endYear="2007"><img src="img/datepicker.png"/></s:selectDate> <div class="validationError"><h:message for="dob"/></div> </div>
例 ![]() CSS スタイリング 次の一覧では日付選択コントロールのスタイルを制御する目的で使用される CSS クラス名を示します。
![]() |
<s:conversationPropagation> | 詳細 コマンドリンクやボタン (または JSF コントロールのようなもの) に対する対話伝搬をカスタマイズします。 Facelets 固有です。 属性
使い方
|
<s:conversationId> | 詳細 対話 ID を出力リンク (または JSF コントロールのようなもの) に追加します。 Facelets 固有です。 属性 なし 使い方
|
<s:taskId> | 詳細 タスクが #{task} で使用できる場合、 タスク ID を出力リンク (または JSF のようなもの) に追加します。 Facelets 固有です。 属性 なし 使い方
|
<s:fileUpload> | 詳細 ファイルアップロードコントロールをレンダリングします。 このコントロールはエンコーディングタイプ multipart/form-data を使用してフォーム内で使用する必要があります。 <h:form enctype="multipart/form-data"> マルチパートのリクエストの場合、 Seam Multipart サーブレットフィルタも web.xml 内で設定しなければなりません。 <filter> <filter-name>Seam Filter</filter-name> <filter-class>org.jboss.seam.web.SeamFilter</filter-class> </filter> <filter-mapping> <filter-name>Seam Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 設定 components.xml では、 次のようなマルチパートリクエスト用の設定オプションが設定できます。
例を示します。 <component class="org.jboss.seam.web.MultipartFilter"> <property name="createTempFiles">true</property> <property name="maxRequestSize">1000000</property> </component> 属性
使い方
|