您好,在我的jsp页面中,我正在测试一个条件
<jsp:scriptlet>
if (session.getAttribute("empid") != null && session.getAttribute("empid") != "")
{
.......
}
但我收到了编译错误。
实体名称必须紧跟'&amp;'在实体参考中。
任何人都知道如何解决这个问题?
答案 0 :(得分:2)
答案取决于您正在使用的JSP页面的类型。
如果您使用普通的JSP页面,则可以选择将<jsp:scriptlet>
标记替换为<% %>
或将所有XML实体(例如&
)转换为&
或{{1 } {} <
)。
但是,如果您使用的是JSPX(也称为JSP文档),那么您唯一的选择就是转义XML实体。
答案 1 :(得分:1)
使用常规javascript,您可以在JS周围包装以下内容:
//<![CDATA[.... //]]>
给个机会。
答案 2 :(得分:0)
“Facelets是一种基于XML的视图技术,它使用XHTML + XML生成HTML输出.XML有五个特殊字符,由XML解析器进行特殊处理:
&LT;标签的开头。
标签的结尾。 “属性值的开始和结束。 '属性值的替代开始和结束。 &安培;实体的开头(以;结尾)。 如果是&amp;没有#(例如或者),XML解析器隐式地查找预定义的实体名称之一,例如lt,gt,amp等。但是,在您的特定情况下,您正在使用&amp;作为JavaScript运算符,而不是XML实体。这完全解释了您获得的XML解析错误:
实体名称必须紧跟'&amp;'在实体参考
中本质上,您在错误的位置编写JavaScript代码,而不是JS文件,因此您应该相应地转义所有XML特殊字符。 &amp;必须作为&amp;。
进行转义所以,在你的特定情况下,
if(session.getAttribute(“empid”)!= null&amp;&amp; session.getAttribute(“empid”) 必须成为
if(session.getAttribute(“empid”)!= null&amp;&amp; session.getAttribute(“empid”) 使其符合XML格式。“
取自The entity name must immediately follow the '&' in the entity reference