您似乎正在使用 Facelets(这非常好)。然而它是一种基于 XML 的视图技术。您在 Facelets 中编写的所有内容都必须是语法上有效的 XML。这&
在 XML 中是一个特殊字符,表示一个字符串的开始entity http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references like &
, <
, >
,  
, etc.
如果您想代表&
XML 中的原样,那么您必须将其替换为&
.
<h:outputText value="#{(sel.description !=null) && (sel.description !='') ? sel.description : 'Empty description'} - "/>
但是,这不太可读,您宁愿使用替代的 EL 运算符and
为此(另见EL 中的运算符 http://docs.oracle.com/javaee/6/tutorial/doc/bnaik.html有关 EL 中所有可用运算符的概述):
<h:outputText value="#{(sel.description !=null) and (sel.description !='') ? sel.description : 'Empty description'} - "/>
总而言之,这又相当笨拙,因为有一个更简单的方法empty
关键字用于测试空性和空性。在您的特定情况下,这可以用作:
<h:outputText value="#{not empty sel.description ? sel.description : 'Empty description'} - "/>
or
<h:outputText value="#{!empty sel.description ? sel.description : 'Empty description'} - "/>
or
<h:outputText value="#{empty sel.description ? 'Empty description' : sel.description} - "/>