1

我们正在从 JSP VDL 迁移到 Facelets VDL。我们有条件渲染标签需要移植到 Facelets。由于条件渲染中的 && 符号,.xhtml 编译失败。关于如何处理这个问题的任何想法?

<a4j:outputPanel styleClass="myclass" layout="block"
                         rendered="#{myBean.iscorrect && anotherBean.isCorrect}">
render something here ...

</a4j:outputPanel>

谢谢你的时间。

4

1 回答 1

0

使用and而不是&&. 它也立即更加自我记录。

<a4j:outputPanel styleClass="myclass" layout="block"
    rendered="#{myBean.iscorrect and anotherBean.isCorrect}">

原因是因为 Facelets 是一种基于 XML 的视图技术,它&是 XML 中表示实体开始的特殊字符。您收到的确切的 Facelets 编译错误消息也应该暗示了这一点。其他需要注意的特殊字符是<>在 EL 中应该分别替换为ltgt

此问题与 RichFaces 无关。在标准 JSF 标记中这样做时,您会遇到完全相同的问题。

顺便问一下,你真的有isIscorrect()getter方法吗?如果您有一个private boolean correct;withpublic boolean isCorrect()方法并且正在评估 as ,那对我来说会更有意义rendered="#{myBean.correct and anotherBean.correct}"

于 2012-04-19T16:23:12.257 回答