Имя объекта должно следовать сразу за '&' в ссылке на объект - PullRequest
1 голос
/ 17 апреля 2011

Привет, на моей странице jsp я тестирую условие

<jsp:scriptlet>

  if (session.getAttribute("empid") != null && session.getAttribute("empid") != "")
{
.......
}

Но я получаю ошибку компилятора.

Имя объекта должно сразу следовать за '&' вссылка на сущность.

Кто-нибудь знает, как решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 17 апреля 2011

Ответ немного зависит от типа страницы JSP, которую вы используете.

Если вы используете обычные страницы JSP, вы можете выбрать между заменой тегов <jsp:scriptlet> на <% %> или экранированием всех сущностей XML (например, & как &amp; или < как &lt;).

Однако, если вы используете JSPX (также называемый документом JSP), ваш единственный выбор - экранировать сущности XML.

0 голосов
/ 30 сентября 2013

"Facelets - это технология представления на основе XML, которая использует XHTML + XML для генерации вывода HTML. XML имеет пять специальных символов, которые обрабатываются синтаксическим анализатором XML:

<начало тега. </p>

конец тега. "Начало и конец значения атрибута.'альтернативное начало и конец значения атрибута.& начало сущности (которая заканчивается на;).В случае &, за которым не следует # (например, или), синтаксический анализатор XML неявно ищет одно из предопределенных имен сущностей, таких как lt, gt, amp и т. Д. Однако в вашем конкретном случае вы использовали & asоператор JavaScript, а не как сущность XML.Это полностью объясняет полученную ошибку синтаксического анализа XML:

Имя сущности должно следовать сразу за '&' в ссылке на сущность

По сути, вы пишете код JavaScript внеправильное место, XML-документ вместо JS-файла, поэтому вы должны соответственно экранировать все специальные XML-символы.Символ & должен быть экранирован как &.

Итак, в вашем конкретном случае,

if (session.getAttribute ("empid")! = Null && session.getAttribute ("empid")должно стать

if (session.getAttribute ("empid")! = null && session.getAttribute ("empid"), чтобы сделать его действительным в XML. "

взято из имя объекта должно следовать сразу после '&' в ссылке на объект

...