JSF复合组件值和<c:if>

时间:2015-05-17 10:55:10

标签: jsf jstl composite-component

我有以下内容:

<c:set var="myMode" value="#{component.parent.attributes['xyz-mode']}"/>

其中&#34; xyz-mode&#34;是来自另一个复合组件...... 当我用这个打印它的值时:

<p:outputLabel value="#{myMode}" /> 

正确打印,假设值为3 但是..在同一页面上,当我使用c:if或c:when ..它没有正确评估值:

<c:choose>    
    <c:when test="#{myMode == 3}">
         <p:outputLabel value="mode is 3" />
    </c:when>
    <c:otherwise>
         <p:outputLabel value="Otherwise" />
    </c:otherwise>
</c:choose>

代码打印&#34;否则&#34;仅限案例..而不是&#34;模式是3&#34; 请注意&#34; xyz-mode&#34;的类型从复合组件中检索到的是Integer .. 为什么会发生这种情况.. 现在已经10天了,我找不到答案:(任何人都可以帮忙吗? 赞赏。

1 个答案:

答案 0 :(得分:0)

您可以使用rendered属性检查条件并相应地打印值。

<p:outputLabel value="mode is 3" rendered="#{myMode == 3}" />
<p:outputLabel value="Otherwise" rendered="#{myMode != 3}" />

希望它有所帮助。