实体名称必须紧跟在实体引用中的“&”之后

|| 嗨,在我的jsp页面中,我正在测试一种情况
<jsp:scriptlet>

  if (session.getAttribute(\"empid\") != null && session.getAttribute(\"empid\") != \"\")
{
.......
}
但是我收到编译器错误。   实体名称必须紧随实体引用中的\'&\'之后。 有谁知道如何解决这个问题?     
已邀请:
答案取决于您所使用的JSP页面的类型。 如果您使用普通的JSP页面,则可以选择用ѭ2替换
<jsp:scriptlet>
标记,还是转义所有XML实体(例如
&
表示
&amp;
<
表示
&lt;
)。 但是,如果您正在使用JSPX(也称为JSP文档),则唯一的选择是转义XML实体。     
\“ Facelets是一种基于XML的视图技术,它使用XHTML + XML生成HTML输出。XML具有五个特殊字符,XML解析器对其进行了特殊处理: <标签的开头。   标签的结尾。   \“属性值的开始和结束。   \'属性值的替代开始和结束。   &实体的开头(以;结尾)。   如果&后面没有#(例如或),则XML解析器会隐式地查找预定义的实体名称之一,例如lt,gt,amp等。但是,在您的特定情况下,您使用&作为JavaScript运算符,而不是XML实体。这完全解释了您遇到的XML解析错误: 实体名称必须紧跟在实体参考中的\'&\'之后 本质上,您在错误的位置编写了JavaScript代码,而不是JS文件而不是XML文档,因此您应该相应地转义所有XML特殊字符。 &必须转为&。 因此,在您的特定情况下, 如果(session.getAttribute(\“ empid \”)!= null && session.getAttribute(\“ empid \”) 必须成为 如果(session.getAttribute(\“ empid \”)!= null && session.getAttribute(\“ empid \”) 使它对XML有效。\“ 取自实体名称,必须紧随实体引用中的“&”     
使用常规的javascript,您可以在JS周围包装以下内容:
//<![CDATA[.... //]]>
试一试。     

要回复问题请先登录注册