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

Posted

技术标签:

【中文标题】JSF 复合组件值和 <c:if> [重复]【英文标题】:JSF composite component value and <c:if> [duplicate] 【发布时间】:2015-07-28 22:45:54 【问题描述】:

我有以下几点:

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

其中“xyz-mode”来自另一个复合组件... 当我使用这个打印它的值时:

<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>

代码仅打印“否则”的情况..而不是“模式为 3” 请注意,从复合组件中检索到的“xyz-mode”的类型是 Integer.. 为什么会这样。。 现在已经 10 天了,我还没有找到答案:( .. 有人可以帮忙吗? 赞赏。

【问题讨论】:

【参考方案1】:

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

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

希望对你有帮助。

【讨论】:

以上是关于JSF 复合组件值和 <c:if> [重复]的主要内容,如果未能解决你的问题,请参考以下文章

JSF 复合组件 <f:ajax> 包含未知 id - 无法在组件的上下文中找到它

如何使用 JSF 复合组件使页面上的 id 唯一?

JSF <ui:repeat> <c:forEach> 复合 UINamingContainer

嵌套 JSF 复合组件中的 AJAX

JSF 2.0 复合组件 - ajax 渲染参数 OUTSIDE 组件定义

JSF 2 - 如何将 Ajax 侦听器方法添加到复合组件接口?