具有两个 bean 属性的 JSF EL

JSF EL with two bean attributes

如果我比较渲染属性中的两个值,为什么这段代码不起作用

<c:forEach var="eintrag" items="#{alleEintraege.eintrage}">
    <p:commandButton styleClass="btn btn-info" value="bearbeiten"
                     rendered="#{eintrag.email eq '#{mamanagedBean.benutzer.mit.email}'}"/>
</c:forEach>

两个属性都对。 如果我将它们放在 h:outputText 标签中,它们会显示正确的文本。 只是在组合中它们不起作用。

你应该这样比较:

<c:forEach var="eintrag" items="#{alleEintraege.eintrage}">
    <p:commandButton styleClass="btn btn-info" value="bearbeiten" rendered="#{eintrag.email eq mamanagedBean.benutzer.mit.email}"/>
</c:forEach>

就快完成了,只需修复嵌套表达式,因为它会计算为 String 而不是您所期望的。

您应该比较同一个表达式中的两个 bean 属性,以获得预期的效果。

例子

<p:commandButton rendered="#{managedBean1.email eq managedBean2.email}" />