我有17个属性的a data table。该表可以以两种模式呈现:启用行选择而不启用行选择。
<p:dataTable selection="#{isDefaultSelectionMode ? null : widget.selected}" />
它不起作用,因为selection
希望对属性的引用能够设置/获取它。
widget.ignored
,它会起作用。我不喜欢这个显而易见的原因。
<p:dataTable selection="#{isDefaultSelectionMode ? widget.ignored : widget.selected}" />
selection
并复制其他16个属性。它也不是一个好的。我正在寻找一个优雅的解决方案,要么使属性可选(不在某些条件下渲染它)或避免定义虚拟属性。
我是JSF和PrimeFaces的新手,随时纠正。任何帮助都会受到欢迎。
幸运的是,我没有必要应用任何可怕的解决方法。
正如@Kukeltje(谢谢)和他提供的链接所建议的那样,我有条件地定义了属性
<c:if test="#{isDefaultSelectionMode}">
<f:attribute name="selection" value="#{widget.selected}"/>
</c:if>
有关详细信息,请访问以下问题: