我们正在从JSP VDL迁移到Facelets VDL。我们有条件渲染标记需要移植到Facelets。因为&&条件渲染中的符号,.xhtml在编译中失败。关于如何处理这个的任何想法?
<a4j:outputPanel styleClass="myclass" layout="block"
rendered="#{myBean.iscorrect && anotherBean.isCorrect}">
render something here ...
</a4j:outputPanel>
感谢您的时间。
答案 0 :(得分:0)
使用and
代替&&
。它也立即更加自我记录。
<a4j:outputPanel styleClass="myclass" layout="block"
rendered="#{myBean.iscorrect and anotherBean.isCorrect}">
原因是因为Facelets是基于XML的视图技术,&
是XML中表示实体开始的特殊字符。你得到的确切的Facelets编译错误信息也应该暗示一些。需要注意的其他特殊字符是<
和>
,其中EL应分别由lt
和gt
替换。
此问题与RichFaces无关。在标准JSF标记中执行此操作时,您会遇到完全相同的问题。
顺便问一下,你真的有一个isIscorrect()
getter方法吗?如果您使用private boolean correct;
public boolean isCorrect()
方法并且评估为rendered="#{myBean.correct and anotherBean.correct}"
,那对我来说会更有意义。