我在弄清楚如何在 Facelets 中的 EL 表达式上执行和操作时遇到了一些麻烦。
所以基本上我有:
<h:outputText id="Prompt"
value="Fobar"
rendered="#{beanA.prompt == true && beanB.currentBase !=null}" />
但我不断得到:
错误跟踪[行:69] 实体名称必须紧跟在“&”之后
在实体参考中。
Facelets 是一种基于 XML 的视图技术。这&
is a 特殊字符 http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML在 XML 中表示实体的开始,例如&
以;
特点。你需要逃避它,这很丑陋:
rendered="#{beanA.prompt == true && beanB.currentBase != null}"
或使用and
相反,从可读性和可维护性角度考虑,最好使用关键字:
rendered="#{beanA.prompt == true and beanB.currentBase != null}"
也可以看看:
- Java EE 6 教程 - EL 中的运算符 http://docs.oracle.com/javaee/6/tutorial/doc/bnaik.html
无关对于具体问题,当表达式已经期望布尔结果时,将布尔值与布尔值进行比较没有任何意义。我会摆脱== true
:
rendered="#{beanA.prompt and beanB.currentBase != null}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)