検索
カレンダー
2010年3月
« 2月   4月 »
 123456
78910111213
14151617181920
21222324252627
28293031  
ブログメニュー
Amazon検索
キーワード:

Mojarraに対するweb.xmlでの設定

2010年3月18日

Mojarra(GlassFish)を使っていて、勝手にBeanValidationが動作するので停止させる方法を探していました。

JSF2 の Final Draft では、「javax.faces.validator.DISABLE_BEAN_VALIDATOR」を true にすればよいと書いてあったのですが、停止できませんでした。

そこでソースコードを辿ってみたところ、WebConfigurationクラス に定義がありました。どうやら BeanValidation を停止させるには「javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR」を true にすればよさそうです。

・・・どちらが正しいのでしょうか。 僕の見ていた資料が古いんですかね?

(続きを読む…)

Faceletsではc:タグとui:タグを混在しないほうがいいみたい

2010年3月2日

FaceletsではJSFのタグ(ui:repeat等)とJSTLのタグ(c:if等)が使えます。

ですが、評価されるタイミングが違うので混在すると思った通りに動かないことがあります。
JSFのタグはレンダリングの際に評価され、JSTLのタグはコンパイルの際に評価されるようです。

たとえば、以下のような書き方をしても、c:if タグの条件は思った通りに評価されません。

<ui:repeat var="member" value="#{members}">
    <c:if test="#{member.admin}"><span class="admin">ADMIN</span></c:if>
    <c:if test="#{!member.admin}">MEMBER</c:if>
    <br />
</ui:repeat>

ui:repeatの代わりにc:forEachを使うか、次のようにc:ifの代わりにui:fragmentを使えば同じタイミングで評価されます。

<ui:repeat var="member" value="#{members}">
    <ui:fragment rendered="#{member.admin}"><span class="admin">ADMIN</span></ui:fragment>
    <ui:fragment rendered="#{!member.admin}">MEMBER</ui:fragment>
    <br />
</ui:repeat>