我对这段代码有一种非常奇怪的行为:
<ui:fragment rendered="#{price.guestIdTrue}">
<b>PRICE_GUEST_ID_TRUE : #{price.guestIdTrue}</b>
<h:outputText>#{Global.guestTypeMap[price.guestId]} #{price.guestIndex}</h:outputText>
</ui:fragment>
即使渲染条件为假,也是如此
PRICE_GUEST_ID_TRUE:false 1
1是#{price.guestIndex}
ui名称空间已正确定义,并且适用于其他facelets。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:t="http://myfaces.apache.org/tomahawk">
关于会发生什么的任何想法。
提前致谢。
答案 0 :(得分:6)
您似乎在迭代标记/组件中使用<ui:fragment>
,其中#{price}
实际上是当前迭代的变量,例如JSTL <c:forEach>
标记或JSF {{1使用早期版本的Mojarra时,或<h:dataTable>
组件。在这些情况下,EL范围内的<ui:repeat>
不可用于评估它。
您需要#{price}
或将Mojarra版本升级到最新版本。