Mojarra(GlassFish)を使っていて、勝手にBeanValidationが動作するので停止させる方法を探していました。
JSF2 の Final Draft では、「javax.faces.validator.DISABLE_BEAN_VALIDATOR」を true にすればよいと書いてあったのですが、停止できませんでした。
そこでソースコードを辿ってみたところ、WebConfigurationクラス に定義がありました。どうやら BeanValidation を停止させるには「javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR」を true にすればよさそうです。
・・・どちらが正しいのでしょうか。 僕の見ていた資料が古いんですかね?
(more…)
カテゴリ : Java | コメント(0)
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>
カテゴリ : Java | コメント(0)