有人知道<c:if>
的替代方法,以查看视图渲染时间,还是可能的话。对于我到目前为止搜索的内容,它尚不存在,或者可以使用rendered
属性,但对我而言实际上并不起作用。
<af:listView value="#{bindings.date.collectionModel}" var="item" id="lv1">
<af:listItem id="li2">
<af:iterator id="i1" value="#{bindings.list.collectionModel}" var="row">
<c:if test="#{item.bindings.attrid.inputValue eq row.attrid}">
<ui:param name="varUI" value="true" />
<c:set var="varC" value="true" />
</c:if>
</af:iterator>
<af:outputText value="#{varUI}" id="otqaswq"/>
<!--<af:outputText value="#{varC}" id="otqawq"/>-->
<af:selectBooleanCheckbox text="Activated" id="sbc2" value="#{varUI}"/>
</af:listItem>
</af:listView>
因此在上面的代码中,我知道c:
它们在不同的时间运行,查看生成时间,而不是渲染时间。
我需要的是af:selectBooleanCheckbox
会显示true或false,这取决于是否存在具有相同值的值。
我的问题是,有人知道替代方法吗?
答案 0 :(得分:0)
渲染的图像应100%可用,您的表达可能不正确。 切换到您将使用完全相同的表达式的另一种选择,将使您处于完全相同的位置。
答案 1 :(得分:0)
您不能使用<af:iterator>
来使用<ui:param>
或<c:set>
有条件地设置值,因为它们都是标记处理程序,它们在之前 {{1 }}。您可以改用<af:iterator>
,但这需要一些集合来进行迭代。像<c:forEach>
这样的javax.faces.model.DataModel
很可能无法工作。
但是,老实说,您应该实现一些Java方法,该方法将为您提供所需的值(#{bindings.list.collectionModel}
或true
),而不是尝试使用JSF标签实现此逻辑。