第31章 Seam JSF コントロール
Seam には組み込みコントロールや他のサードパーティライブラリのコントロールの機能を補完する JavaServer Faces (JSF) コントロールが多く含まれています。 Seam と併用する場合は、JBoss RichFaces および Apache MyFaces Trinidad タグライブラリの使用を推奨します。 Tomahawk タグライブラリの使用はお薦めできません。
31.1. タグ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
これらのタグを使用するには、 以下のように使用するページで
s 名前空間を定義します (Facelets のみ)。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib">
ユーザーインターフェースのサンプルではいくつかのタグの使用例を示しています。
31.1.1. ナビゲーションコントロール リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
31.1.1.1. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
対話の伝搬を制御することでアクションの呼び出しをサポートするボタンです。 このボタンではフォームはサブミットしません。
Attributes
value− ボタンのラベルです。action− アクションリスナーを指定するメソッドバインディングです。view− リンク先となる JSF ビュー ID を指定します。fragment− リンク先となるフラグメント識別子を指定します。disabled− リンクを無効にするかどうか指定します。propagation− 対話の伝播方式を指定します、begin、join、nest、none、endがあります。pageflow− 開始するページフロー定義を指定します (propagation="begin"またはpropagation="join"が使用される場合のみ有効)。
使用方法
<s:button id="cancel" value="Cancel" action="#{hotelBooking.cancel}"/>
<s:button id="cancel" value="Cancel" action="#{hotelBooking.cancel}"/>
<s:link /> には、 view と action の両方が指定可能です。 この場合、指定されたビューへのリダイレクトが発生した時点でアクションが呼び出されます。
<s:button />ではアクションリスナー (デフォルトの JSF アクションリスナーも含む) の使用はサポートされていません。
31.1.1.2. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
対話 ID を JSF リンクまたはボタンに追加します。例えば以下のとおりです。
<h:commandLink />, <s:button />.
Attributes
なし
31.1.1.3. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
タスクが
#{task} で利用可能な場合、 出力リンク (または同様の JSF コントロール) にタスク ID を付加します。
Attributes
なし
31.1.1.4. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
対話の伝搬を制御することでアクションの呼び出しをサポートするリンクです。 このボタンではフォームはサブミットしません。
<s:link />ではアクションリスナー (デフォルトの JSF アクションリスナーも含む) の使用はサポートされていません。
Attributes
value− リンクラベルを指定します。action− アクションリスナーを指定するメソッドバインディングです。view− リンク先となる JSF ビュー ID を指定します。fragment− リンク先となるフラグメント識別子を指定します。disabled− リンクを無効にするかどうか指定します。propagation− 対話の伝播方式を指定します、begin、join、nest、none、endがあります。pageflow− 開始するページフロー定義を指定します (propagation="begin"またはpropagation="join"が使用される場合のみ有効)。
使用方法
<s:link id="register" view="/register.xhtml" value="Register New User"/>
<s:link id="register" view="/register.xhtml" value="Register New User"/>
<s:link /> には、 view と action の両方が指定可能です。 この場合、指定されたビューへのリダイレクトが発生した時点でアクションが呼び出されます。
31.1.1.5. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
コマンドリンクやボタン (または同様の JSF コントロール) に対し対話の伝搬をカスタマイズします。 Facelets のみです。
Attributes
type— 対話の伝播方式を指定します、begin、join、nest、noneendがあります。pageflow− 開始するページフロー定義を指定します (propagation="begin"またはpropagation="join"が使用される場合のみ有効)。
使用方法
<h:commandButton value="Apply" action="#{personHome.update}">
<s:conversationPropagation type="join" />
</h:commandButton>
<h:commandButton value="Apply" action="#{personHome.update}">
<s:conversationPropagation type="join" />
</h:commandButton>
31.1.1.6. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
enter キーでフォームをサブミットしたときに実行するデフォルトのアクションを指定します。
現時点では、
<h:commandButton />、 <a:commandButton />、 <tr:commandButton /> など、 ボタンの内側にのみネストが可能です。
アクションソースには ID を指定する必要があり、 1 つのフォームに指定できるのはデフォルトの 1 アクションのみとなります。
Attributes
なし
使用方法
<h:commandButton id="foo" value="Foo" action="#{manager.foo}">
<s:defaultAction />
</h:commandButton>
<h:commandButton id="foo" value="Foo" action="#{manager.foo}">
<s:defaultAction />
</h:commandButton>
31.1.2. コンバータとバリデータ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
31.1.2.1. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
Seam タイムゾーン内でデータ変換または時刻変換を行います。
Attributes
なし
使用方法
<h:outputText value="#{item.orderDate}">
<s:convertDateTime type="both" dateStyle="full"/>
</h:outputText>
<h:outputText value="#{item.orderDate}">
<s:convertDateTime type="both" dateStyle="full"/>
</h:outputText>
31.1.2.2. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
エンティティコンバータを現在のコンポーネントに割り当てます。 ラジオボタンコントロールおよびドロップダウンコントロールに役立ちます。
コンバータは単純なエンティティ、複合エンティティなどすべての管理エンティティとも動作します。フォームのサブミット時にコンバータが JSF コントロールで宣言された項目を発見できないと、検証エラーが発生します。
Attributes
なし
設定
管理永続コンテキスト は
entityManager という名前でなければなりません。 この名前が付いていない場合は components.xml で変更します。
<components xmlns="http://jboss.com/products/seam/components"
xmlns:ui="http://jboss.com/products/seam/ui">
<ui:jpa-entity-loader entity-manager="#{em}" />
<components xmlns="http://jboss.com/products/seam/components"
xmlns:ui="http://jboss.com/products/seam/ui">
<ui:jpa-entity-loader entity-manager="#{em}" />
管理 Hibernate セッション を使用している場合は、 それを
components.xml でも設定する必要があります。
<components xmlns="http://jboss.com/products/seam/components"
xmlns:ui="http://jboss.com/products/seam/ui">
<ui:hibernate-entity-loader />
<components xmlns="http://jboss.com/products/seam/components"
xmlns:ui="http://jboss.com/products/seam/ui">
<ui:hibernate-entity-loader />
管理 Hibernate セッション は
session という名前でなければなりません。 この名前が付いていない場合は components.xml で変更します。
<components xmlns="http://jboss.com/products/seam/components"
xmlns:ui="http://jboss.com/products/seam/ui">
<ui:hibernate-entity-loader session="#{hibernateSession}" />
<components xmlns="http://jboss.com/products/seam/components"
xmlns:ui="http://jboss.com/products/seam/ui">
<ui:hibernate-entity-loader session="#{hibernateSession}" />
このエンティティコンバータで複数のエンティティマネージャを使用する場合は、
components.xml でそれぞれのエンティティマネージャに対してこのエンティティコンバータのコピーを作成します。 エンティティコンバータはエンティティローダーに委譲して次のような永続化操作を行います。
使用方法
31.1.2.3. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
enum コンバータを現在のコンポーネントに割り当てます。主にラジオボタンコントロールおよびドロップダウンコントロールに役立ちます。
Attributes
なし
使用方法
31.1.2.4. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
java.util.concurrent.atomic.AtomicBoolean 用の javax.faces.convert.Converter です。
Attributes
なし
使用方法
<h:outputText value="#{item.valid}">
<s:convertAtomicBoolean />
</h:outputText>
<h:outputText value="#{item.valid}">
<s:convertAtomicBoolean />
</h:outputText>
31.1.2.5. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
java.util.concurrent.atomic.AtomicInteger 用の javax.faces.convert.Converter です。
Attributes
なし
使用方法
<h:outputText value="#{item.id}">
<s:convertAtomicInteger />
</h:outputText>
<h:outputText value="#{item.id}">
<s:convertAtomicInteger />
</h:outputText>
31.1.2.6. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
java.util.concurrent.atomic.AtomicLong 用の javax.faces.convert.Converter です。
Attributes
なし
使用方法
<h:outputText value="#{item.id}">
<s:convertAtomicLong />
</h:outputText>
<h:outputText value="#{item.id}">
<s:convertAtomicLong />
</h:outputText>
31.1.2.7. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
入力コントロールの親の値が、参照されたコントロールの値と同等かどうかを確認します。
Attributes
for− 検証の対象となるコントロールの ID です。message− 失敗時に表示されるメッセージです。required— False は値がフィールドで入力されたかのチェックを無効にします。messageId− 失敗時に表示するメッセージ ID です。operator— 値の比較時に使用する演算子です。 有効な演算子は次のとおりです。equal—value.equals(forValue)を検証します。not_equal—!value.equals(forValue)を検証します。greater— ((Comparable)value).compareTo(forValue) > 0 を検証します。greater_or_equal— ((Comparable)value).compareTo(forValue) >= 0 を検証します。less— ((Comparable)value).compareTo(forValue) < 0 を検証します。less_or_equal— ((Comparable)value).compareTo(forValue) <= 0 を検証します。
使用方法
<h:inputText id="name" value="#{bean.name}"/>
<h:inputText id="nameVerification" >
<s:validateEquality for="name" />
</h:inputText>
<h:inputText id="name" value="#{bean.name}"/>
<h:inputText id="nameVerification" >
<s:validateEquality for="name" />
</h:inputText>
31.1.2.8. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
非視覚的なコントロールです。 Hibernate Validator を使用してバウンドプロパティに対して JSF 入力フィールドを確認します。
Attributes
なし
使用方法
<h:inputText id="userName" required="true" value="#{customer.userName}">
<s:validate />
</h:inputText>
<h:message for="userName" styleClass="error" />
<h:inputText id="userName" required="true" value="#{customer.userName}">
<s:validate />
</h:inputText>
<h:message for="userName" styleClass="error" />
31.1.2.9. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
非視覚的なコントロールです。 Hibernate Validator を使ってそのバウンドプロパティに対しすべての子 JSF 入力フィールドを確認します。
Attributes
なし
使用方法
31.1.3. フォーマット リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
31.1.3.1. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
検証に失敗した場合または
required="true" に設定されている場合、 JSF 入力フィールドを「装飾」します。
Attributes
template− コンポーネントの装飾に使用される Facelet テンプレートです。enclose—trueにすると、 入力フィールドの装飾に使用されたテンプレートが「element」属性で指定されたエレメントで囲まれます (デフォルトではdivエレメントです)。element— 入力フィールドを装飾するテンプレートを囲むエレメントです。 デフォルトではテンプレートはdivエレメントで囲まれます。
#{invalid} と #{required} が s:decorate の内部で利用可能です。 装飾された入力コンポーネントが required に設定されると #{required} は true と評価されます。 また、 検証エラーが発生すると、#{invalid} は true と評価されます。
使用方法
<s:decorate template="edit.xhtml">
<ui:define name="label">Country:</ui:define>
<h:inputText value="#{location.country}" required="true"/>
</s:decorate>
<s:decorate template="edit.xhtml">
<ui:define name="label">Country:</ui:define>
<h:inputText value="#{location.country}" required="true"/>
</s:decorate>
31.1.3.2. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
HTML
<div> をレンダリングします。
Attributes
なし
使用方法
<s:div rendered="#{selectedMember == null}">
Sorry, but this member does not exist.
</s:div>
<s:div rendered="#{selectedMember == null}">
Sorry, but this member does not exist.
</s:div>
31.1.3.3. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
HTML
<span> をレンダリングします。
Attributes
title− span のタイトルです。
使用方法
<s:span styleClass="required" rendered="#{required}" title="Small tooltip">
*
</s:span>
<s:span styleClass="required" rendered="#{required}" title="Small tooltip">
*
</s:span>
31.1.3.4. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
レンダリングされないコンポーネントで、その子のレンダリングを有効化 / 無効化するのに役立ちます。
Attributes
なし
使用方法
<s:fragment rendered="#{auction.highBidder ne null}">
Current bid:
</s:fragment>
<s:fragment rendered="#{auction.highBidder ne null}">
Current bid:
</s:fragment>
31.1.3.5. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
JSF 入力フィールドをラベルで「装飾」します。 ラベルは HTML
<label> タグの内側に配置され、 最も近い JSF 入力コンポーネントと関連付けられます。 <s:decorate> と併用されることがよくあります。
Attributes
style− コントロールのスタイルです。styleClass− コントロールのスタイルクラスです。
使用方法
<s:label styleClass="label"> Country: </s:label>
<h:inputText value="#{location.country}" required="true"/>
<s:label styleClass="label"> Country: </s:label>
<h:inputText value="#{location.country}" required="true"/>
31.1.3.6. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
検証のエラーメッセージで JSF 入力フィールドを「装飾」します。
Attributes
なし
使用方法
31.1.4. Seam Text リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
31.1.4.2. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
Seam Text を出力します。Seam Text はブログや wiki、 リッチテキストを使うその他のアプリケーションにとって便利なリッチテキストマークアップです。使用方法の詳細は Seam Text の章を参照してください。
Attributes
value− レンダリングするリッチテキストマークアップを指定する EL 式です。
使用方法
<s:formattedText value="#{blog.text}"/>
<s:formattedText value="#{blog.text}"/>
例
31.1.5. フォームのサポート リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
31.1.5.1. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
クロスサイトリクエストフォージェリ (XSRF) 攻撃に対し JSF フォーム送信の安全性を確保するためランダムなトークンを生成して非表示のフォームフィールドに挿入します。 このコンポーネントを含むフォームを送信するためにブラウザのクッキーを有効にしておく必要があります。
Attributes
requireSession— トークンをセッションにバインドさせるためセッション ID をフォーム署名に含ませるかどうかを示します。 デフォルト値はfalseですが、 Facelets が「build before restore」モードの場合にしか使用されないはずです (「build before restore」は JSF 2.0 ではデフォルトのモードです)。enableCookieNotice— クッキーがブラウザで有効であることを確認するために JavaScript チェックがページに挿入されるべきであると示します。 クッキーが有効でないとフォームの送信は機能しないという通知をユーザーに表示します。 デフォルト値はfalseです。allowMultiplePosts— 同じフォームを同じ署名を使って複数送信が可能かどうかを示します (ビューは変更なし)。 フォームがそれ自体または UIToken コンポーネントをレンダリングしないで AJAX 呼び出しを行っている場合に必要とされることが多くあります。 UIToken コンポーネントが処理されるであろう AJAX の呼び出し時に UIToken コンポーネントを再度レンダリングした方がよいでしょう。 デフォルト値はfalseです。
使用方法
<h:form> <s:token enableCookieNotice="true" requireSession="false"/> ... </h:form>
<h:form>
<s:token enableCookieNotice="true" requireSession="false"/>
...
</h:form>
31.1.5.2. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
列挙値から
SelectItem を作成します。
Attributes
enumValue− 列挙値の文字列表現です。label−SelectItemをレンダリングするときに使用するラベルです。
使用方法
31.1.5.3. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
List、 Set、 DataModel または Array から
List<SelectItem> を作成します。
Attributes
value−List<SelectItem>に格納されるデータを指定する EL 式です。var− 反復中に現在のオブジェクトを保持するローカル変数の名前を定義します。label−SelectItemをレンダリングするときに使用するラベルです。var変数の参照が可能です。itemValue− この選択肢を選ぶとサーバに戻される値を指定します。 これはオプション属性です。 含ませるとvarが使用されるデフォルトのオブジェクトになります。var変数の参照が可能です。disabled−trueの場合、SelectItemが無効としてレンダリングされます。var変数の参照が可能です。noSelectionLabel− 一覧の冒頭に記載する (オプションの) ラベルを指定します。 この値を選択し、 またrequired="true"も指定すると検証エラーとなります。hideNoSelectionLabel− true の場合、 値が選択されているとnoSelectionLabelは非表示になります。
使用方法
<h:selectOneMenu value="#{person.age}" converter="ageConverter">
<s:selectItems value="#{ages}" var="age" label="#{age}" />
</h:selectOneMenu>
<h:selectOneMenu value="#{person.age}" converter="ageConverter">
<s:selectItems value="#{ages}" var="age" label="#{age}" />
</h:selectOneMenu>
31.1.5.4. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
ファイルアップロードコントロールをレンダリングします。 このコントロールはエンコーディングタイプを
multipart/form-data にしてフォーム内で使用しなければなりません。
<h:form enctype="multipart/form-data">
<h:form enctype="multipart/form-data">
マルチパート要求の場合、 Seam Multipart サーブレットフィルタも
web.xml 内で設定しなければなりません。
設定
components.xml では、 次のようなマルチパート要求用の設定オプションが設定できます。
createTempFiles−trueの場合、アップロードされたファイルはメモリではなく一時ファイルに保存されます。maxRequestSize− ファイルアップロード要求のバイト単位の最大サイズです。
例:
<component class="org.jboss.seam.web.MultipartFilter"> <property name="createTempFiles">true</property> <property name="maxRequestSize">1000000</property> </component>
<component class="org.jboss.seam.web.MultipartFilter">
<property name="createTempFiles">true</property>
<property name="maxRequestSize">1000000</property>
</component>
Attributes
data− バイナリのファイルデータを受け取る値バインディングを指定します。 受け取るフィールドはbyte[]またはInputStreamとして宣言されている必要があります。contentType− ファイルのコンテンツタイプを受け取る値バインディングを指定するオプションの属性です。fileName− ファイル名を受け取る値バインディングを指定するオプションの属性です。fileSize− ファイルサイズを受け取る値バインディングを指定するオプションの属性です。accept− 受け入れ可能なコンテンツタイプをコンマで区切った一覧です。 たとえば、"images/png,images/jpg"、"images/*"などです。 記載されているタイプはブラウザによってサポートされない場合があります。style− コントロールのスタイルです。styleClass− コントロールのスタイルクラスです。
使用方法
<s:fileUpload id="picture"
data="#{register.picture}" accept="image/png"
contentType="#{register.pictureContentType}" />
<s:fileUpload id="picture"
data="#{register.picture}" accept="image/png"
contentType="#{register.pictureContentType}" />
31.1.6. その他 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
31.1.6.1. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
JBoss Cache を使用してレンダリングされたページフラグメントをキャッシュします。
<s:cache> は実際には組み込みの pojoCache コンポーネントで管理される JBoss Cache のインスタンスを使用するので注意してください。
Attributes
key− レンダリングされたコンテンツをキャッシュするキーです。 値式がよく使用されます。 例えば、 ドキュメントを表示するページフラグメントをキャッシュする場合、key="Document-#{document.id}"のように使います。enabled− キャッシュを使うべきかどうか決定する値式です。region− 使用する JBoss Cache のノードを指定します。 ノード毎に異なる有効期限ポリシーを持つことができます。
使用方法
31.1.6.2. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
ファイルダウンロードプロバイダとして動作するタグです。 JSF ページでは単独でなければなりません。 このコントロールを使用する場合は以下のように
web.xml を設定する必要があります。
設定
Attributes
data— ダウンロードすべきデータを指定します。 java.util.File、 InputStream、 バイトアレイなどになります。fileName− 処理するファイルのファイル名です。contentType− ダウンロードするファイルのコンテンツタイプです。disposition— 使用するディスポジションです。 デフォルトのディスポジションはinlineです。
使用方法
以下のようにタグを使用します。
<s:resource xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib"
data="#{resources.data}" contentType="#{resources.contentType}"
fileName="#{resources.fileName}" />
<s:resource xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib"
data="#{resources.data}" contentType="#{resources.contentType}"
fileName="#{resources.fileName}" />
上記の
resources という名前の Bean はバッキング Bean であり、 要求パラメータの場合、 特定のファイルを処理します。 s:download を参照してください。
31.1.6.3. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
<s:resource> への RESTful リンクをビルドします。 ネストされた f:param はその URL を構成します。
src— ファイルを処理するリソースファイルです。
Attributes
<s:download src="/resources.xhtml">
<f:param name="fileId" value="#{someBean.downloadableFileId}"/>
</s:download>
<s:download src="/resources.xhtml">
<f:param name="fileId" value="#{someBean.downloadableFileId}"/>
</s:download>
http://localhost/resources.seam?fileId=1 と同じようなフォームのリンクを生成します。
31.1.6.4. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
Seam コンポーネント内で画像を作成できるようにする拡張
<h:graphicImage> です。 さらに画像の変換も可能です。
<h:graphicImage> の属性はすべてサポートされる他、 以下もサポートされます。
Attributes
value− 表示する画像を指定します。 パスを表すString(クラスパスからロードされます)、byte[]、java.io.File、java.io.InputStream、java.net.URLが指定可能です。 現在サポートされている画像フォーマットはimage/bmp、image/png、image/jpegとimage/gifです。fileName— 画像のファイル名を指定します。 この名前は一意にしてください。 指定しないと画像に一意のファイル名が生成されます。
変換
画像に変換を適用するには、 適用する変換を指定するタグをネストさせます。 Seam は現在、 次のような変換タグをサポートしています。
<s:transformImageSize>width− 画像の新しい幅を指定します。height− 画像の新しい高さを指定します。maintainRatio−widthかheightのいずれかを指定した状態でtrueにすると、 画像はリサイズされてheight:widthの縦横比を維持します。factor− 与えられた係数で画像を拡大縮小します。
<s:transformImageBlur>radius− 与えられた半径でコンボリューションブラーを実行します。
<s:transformImageType>contentType− 画像のタイプをimage/jpegまたはimage/pngに変更します。
独自の変換を作成することもできます。
org.jboss.seam.ui.graphicImage.ImageTransform を実装する UIComponent を作成します。 applyTransform() メソッド内で image.getBufferedImage() を使って元の画像を取得し、 image.setBufferedImage() で変換した画像を設定します。 変換はビューに指定された順序で適用されます。
使用方法
<s:graphicImage rendered="#{auction.image ne null}"
value="#{auction.image.data}">
<s:transformImageSize width="200" maintainRatio="true"/>
</s:graphicImage>
<s:graphicImage rendered="#{auction.image ne null}"
value="#{auction.image.data}">
<s:transformImageSize width="200" maintainRatio="true"/>
</s:graphicImage>
31.1.6.5. リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
説明
Seam Remoting を使う場合に必要な Javascript のスタブを生成します。
Attributes
include− コンポーネント名 (または完全修飾クラス名)をコンマで区切った一覧です。 Seam Remoting の Javascript スタブを生成します。 詳しくは 24章リモーティング を参照してください。
使用方法
<s:remote include="customerAction,accountAction,com.acme.MyBean"/>
<s:remote include="customerAction,accountAction,com.acme.MyBean"/>