在使用 primefaces dataList 的迭代中,我想像这样有条件地渲染图像:
<ui:param name="curTriggerState" value="#{jobListController.getTriggerState(curJobTriggerInfo)}" />
<p:column rendered="#{showCurJobTrigger}">
<h:outputText value="#{curTriggerState}" />
<h:graphicImage value="/resources/images/triggerstate_none_48.png"
rendered="#{curTriggerState eq 'NONE'}" />
<h:graphicImage value="/resources/images/triggerstate_normal_48.png"
rendered="#{curTriggerState eq 'NORMAL'}" />
<h:graphicImage value="/resources/images/triggerstate_paused_48.png"
rendered="#{curTriggerState eq 'PAUSED'}" />
<h:graphicImage value="/resources/images/triggerstate_complete_32.png"
rendered="#{curTriggerState eq 'COMPLETE'}" />
<h:graphicImage value="/resources/images/triggerstate_error_48.png"
rendered="#{curTriggerState eq 'ERROR'}" />
<h:graphicImage value="/resources/images/triggerstate_blocked_48.png"
rendered="#{curTriggerState eq 'BLOCKED'}" />
</p:column>
jobListController.getTriggerState 返回在相应渲染属性中检查的字符串。输出文本打印出正确的状态。但是没有绘制图像。如果我设置 render="true" 绘制图像,图像的路径是正确的。找不到我的错误。认为 ui:param 可能是原因,但 outputText 打印出正确的字符串。