Syboos jsf4jstl タグの使い方 (JSFでJSTLのコアタグ)
2008/02/24 21:41Update
TAGS: JSF
Syboos jsf4jstlタグはJSTLのcoreタグをJSF実装のカスタムタグであり、JSTL coreタグ(c:forEach, c:if, c:when, c:otherwiseなど)の多くの機能を実現しています。
Syboos jsf4jstlタグについてご説明します。
tc:choose:
JSTLのc:chooseと同じ機能を提供します。
パラメータ:なし。
tc:if:JSTLタグのc:ifタグと同じ機能を提供しています。
構文:
パラメータ:
tc:elseIf:
tc:choose/tc:if/tc:elseと併用。
構文:
※ 1、この場合、tc:elseIf、tc:ifは同じとみなします(互換してもよい)。
※ 2、連続複数のtc:ifまたはtc:elseIfがあることもできます。
パラメータ
tc:else:
tc:choose/tc:if/tc:elseIfと併用。
構文:
※tc:elseタグは最後でなければなりません。
パラメータ:なし。
tc:forEach:
JSTLタグのc:forEachタグと同じ機能を提供しています。
構文:
<tc:forEach var="変数名" items="List,Mapなどの集合オブジェクト" [varStatus="ステータス変数名"] [...]>
繰返し実行される処理
</tc:forEach>
パラメータ:
tc:when:
tc:chooseと併用時、tc:if/tc:elseIfと同じ。
tc:otherwise:
tc:elseと同じ。上記tc:if/tc:elseIf/tc:elseを参照。機能、パラメータ及び使い方は一緒です。
tc:set:
JSTLタグのc:setと同じような機能を提供します。
構文:
パラメータ:
tc:keepState:
値(ValueBinding値)のステートを保持するタグ。指定されるValueBinding値をページレンダー処理時セッションに保存し、ページがロードされる際、その値が自動的にリストアされる(セッションから削除処理も行う)仕組み。ページデータの一部をセッションに保存したい場合に使用します。
構文:
例:<tc:keepState value="#{someBean.someProperty}" />
パラメータ:
tc:loadCookie:
Cookie情報を指定する変数名にセット(ロード)します。
構文:
パラメータ:
使用例:
Cookie名を指定される場合:
<tc:loadCookie var="usercookie" name="userName" />
<h:outputText value="#{usercookie.value}" />
※名前はuserNameというCookieをusercookieにセットします。
※usercookie.value、usercookie.version
Cookie名を指定されなかった場合:
<tc:loadCookie var="cookies" />
<h:outputText value="#{cookies.userName.value}" />
※すべてのCookie情報をcookiesにセットします。
tc:loadSession:
Session情報を指定する変数名にセット(ロード)します。
構文:
パラメータ:
使用例:
<tc:loadSession var="userObj" name="user" />
<h:outputText value="#{userObj.userName}" />
※HttpSession.getAttribute("user")と同意味。
tc:userAgent:
ブラザー情報を変数にセットします。
構文:
パラメータ:
使用例:
<tc:userAgent var="userAgent" />
<h:outputText value="#{userAgent.browser}" />
<h:outputText value="#{userAgent.platform}" />
<h:outputText value="#{userAgent.version}" />
<h:outputText value="#{userAgent.fullname}" />
Syboos jsf4jstlタグ
tc:choose:
JSTLのc:chooseと同じ機能を提供します。
パラメータ:なし。
tc:if:JSTLタグのc:ifタグと同じ機能を提供しています。
構文:
<tc:if test="EL条件式"> JSFタグ(EL条件式がtrueの場合に実行される処理) </tc:if>
パラメータ:
| パラメータ | 属性 | 必須 |
|---|---|---|
| test | JSFのEL条件式。条件式はtrueであることのみ、if文が実行されます。 | ○ |
| var | test属性で実行された結果の値(true、false)を代入する変数。 | x |
| scope | var属性のスコープを設定する。request/session/applicationのいずれかを設定できます。ディフォルトでは、requestが設定されます。 | x |
tc:elseIf:
tc:choose/tc:if/tc:elseと併用。
構文:
<tc:choose> <tc:if test="EL条件式1"> JSFタグ(EL条件式1がtrueの場合に実行される処理) </tc:if> <tc:elseIf test="EL条件式2"> JSFタグ(EL条件式2がtrueの場合に実行される処理) </tc:elseIf> </tc:choose>
※ 1、この場合、tc:elseIf、tc:ifは同じとみなします(互換してもよい)。
※ 2、連続複数のtc:ifまたはtc:elseIfがあることもできます。
パラメータ
| パラメータ | 属性 | 必須 |
|---|---|---|
| test | JSFのEL条件式。条件式はtrueであることのみ、elseIf文が実行されます。 | ○ |
| var | test属性で実行された結果の値(true、false)を代入する変数。 | x |
| scope | var属性のスコープを設定する。request/session/applicationのいずれかを設定できます。ディフォルトでは、requestが設定されます。 | x |
tc:else:
tc:choose/tc:if/tc:elseIfと併用。
構文:
<tc:choose> <tc:if test="EL条件式1"> JSFタグ(EL条件式1がtrueの場合に実行される処理) </tc:if> <tc:elseIf test="EL条件式2"> JSFタグ(EL条件式2がtrueの場合に実行される処理) </tc:elseIf> <tc:else> JSFタグ(どのEL条件式もtrueでなかった場合に実行される処理) </tc:else> </tc:choose>
※tc:elseタグは最後でなければなりません。
パラメータ:なし。
tc:forEach:
JSTLタグのc:forEachタグと同じ機能を提供しています。
構文:
<tc:forEach var="変数名" items="List,Mapなどの集合オブジェクト" [varStatus="ステータス変数名"] [...]>
繰返し実行される処理
</tc:forEach>
パラメータ:
| パラメータ | 属性 | 必須 |
|---|---|---|
| items | オブジェクトの集合オブジェクト。Map、配列などを該当します。 | ○ |
| var | 繰り返し処理される値が代入される変数名。 | ○ |
| varStatus | 繰り返し処理のステータスが代入される変数名。ステータスには:count(1から始まるループ回数)index(0から始まるループ回数)total(集合オブジェクトに含まれるオブジェクトの数)begin(ループ開始インデックス)end(ループ終了インデックス)などの値があります。 | x |
| rows | 繰り返し回数。指定しなかった場合、属性[end]で指定されるインデックスまたは最後まで繰り返し処理します。 | x |
| step | 繰り返し処理の繰り返すレベルを指定します。 | x |
| begin | 繰り返し処理開始するインデックスを指定します。 | x |
| end | 繰り返し処理終了するインデックスを指定します。 | x |
| tokenizer | v1.20+から提供。itemsに指定された文字列や、オブジェクトを変換するためのクラス名を指定します。com.syboos.faces.component.core.IForEachTokenizerインタフェースを継承する必要があります。 tokenizerの使い方 |
x |
tc:when:
tc:chooseと併用時、tc:if/tc:elseIfと同じ。
tc:otherwise:
tc:elseと同じ。上記tc:if/tc:elseIf/tc:elseを参照。機能、パラメータ及び使い方は一緒です。
tc:set:
JSTLタグのc:setと同じような機能を提供します。
構文:
<tc:set var="変数名" value="値" [scope="request/session/application"] />
パラメータ:
| パラメータ | 属性 | 必須 |
|---|---|---|
| var | 値が設定される変数名。 | ○ |
| value | 設定される値 | ○ |
| scope | var属性のスコープを設定する。request/session/applicationのいずれかを設定できます。ディフォルトでは、requestが設定されます。 | x |
tc:keepState:
値(ValueBinding値)のステートを保持するタグ。指定されるValueBinding値をページレンダー処理時セッションに保存し、ページがロードされる際、その値が自動的にリストアされる(セッションから削除処理も行う)仕組み。ページデータの一部をセッションに保存したい場合に使用します。
構文:
<tc:keepState value="#{EL式}" />
例:<tc:keepState value="#{someBean.someProperty}" />
パラメータ:
| パラメータ | 属性 | 必須 |
|---|---|---|
| value | ステートを保持する値を指定する。ValueBinding値。 | ○ |
tc:loadCookie:
Cookie情報を指定する変数名にセット(ロード)します。
構文:
<tc:loadCookie var="変数名" [name="cookie名"] [scope="request/session/application"] />
パラメータ:
| パラメータ | 属性 | 必須 |
|---|---|---|
| var | 値が設定される変数名。値はMap型で、以下のString値が入っています:comment、domain、name、path、value、maxAge、secure、version | ○ |
| name | Cookie名。指定されなかった場合、該当ドメイン内のすべてのcookieが取得され、変数varに設定されます。 | x |
| scope | var属性のスコープを設定します。request/session/applicationのいずれかを設定できます。ディフォルトでは、requestが設定されます。 | x |
Cookie名を指定される場合:
<tc:loadCookie var="usercookie" name="userName" />
<h:outputText value="#{usercookie.value}" />
※名前はuserNameというCookieをusercookieにセットします。
※usercookie.value、usercookie.version
Cookie名を指定されなかった場合:
<tc:loadCookie var="cookies" />
<h:outputText value="#{cookies.userName.value}" />
※すべてのCookie情報をcookiesにセットします。
tc:loadSession:
Session情報を指定する変数名にセット(ロード)します。
構文:
<tc:loadSession var="変数名" name="セッションキー" [scope="request/session/application"] />
パラメータ:
| パラメータ | 属性 | 必須 |
|---|---|---|
| var | 値が設定される変数名。 | ○ |
| name | セッションキー。 | ○ |
| scope | var属性のスコープを設定します。request/session/applicationのいずれかを設定できます。ディフォルトでは、requestが設定されます。 | x |
<tc:loadSession var="userObj" name="user" />
<h:outputText value="#{userObj.userName}" />
※HttpSession.getAttribute("user")と同意味。
tc:userAgent:
ブラザー情報を変数にセットします。
構文:
<tc:userAgent var="変数名" [scope="request/session"] />
パラメータ:
| パラメータ | 属性 | 必須 |
|---|---|---|
| var | 値が設定される変数名。値はMap型で、以下のString値が入っています:browser、platform、version、fullname | ○ |
| scope | var属性のスコープを設定する。request/session/applicationのいずれかを設定できます。ディフォルトでは、requestが設定されます。 | x |
使用例:
<tc:userAgent var="userAgent" />
<h:outputText value="#{userAgent.browser}" />
<h:outputText value="#{userAgent.platform}" />
<h:outputText value="#{userAgent.version}" />
<h:outputText value="#{userAgent.fullname}" />
Sponsored Link
- Relative Articles
- Syboos jsf4jstl License - GNU LGPL - (2008/01/20 22:55)
- Syboos jsf4jstl とは? - (2008/01/20 23:03)
- Syboos jsf4jstl Download - (2008/01/21 00:09)
- Syboos jsf4jstl quick start - (2008/02/24 19:27)
- Syboos jsf4jstl 1.20がリリースされました! - (2008/02/24 20:35)
- Syboos jsf4jstl forEach tokenizer - (2008/02/24 21:38)
- Syboos jsf4jstl forEach tokenizer 実装例2 - (2008/11/20 12:00)
