HTML тег выбора опции закрывается из-за символа "/" в динамическом значении (JSP, JSTL) - PullRequest
0 голосов
/ 07 апреля 2010
<select id="ordersSelect" class="drop-down" onchange="somemethod()"> 

<c:forEach items="${orders}" var="order" varStatus="orderStatus">
  <option value="${order.id}"> ${order.publicId} </option>
</c:forEach>

</select>

У меня есть вышеуказанный фрагмент кода на странице JSP, которая получает список заказов, и у каждого заказа есть некоторая информация, конкретной информацией, которую я хочу отобразить в поле SELECT, является publicId.

Проблема в том, что на дисплее есть только одна опция в SELECT, а остальные publicId ордера отображаются как обычный текст под полем SELECT, а не как опция для выбора.


Я обнаружил, что publicId на самом деле содержит строку типа A10 / 0001/0, и именно символ "/", скорее всего, вызывает проблему.

Какие-либо решения / предложения / идеи?

Ответы [ 2 ]

1 голос
/ 07 апреля 2010

Скорее всего, это вызвано двойной кавычкой " в значении опции. В любом случае вам нужно экранировать сущности HTML. Для этого вы можете использовать fn:escapeXml() JSTL.

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

...

<option value="${fn:escapeXml(order.id)}">${fn:escapeXml(order.publicId)}</option>
0 голосов
/ 07 апреля 2010

Я не уверен, что это проблема. Я создал следующий статический HTML, и он работает в Firefox и Internet Explorer 8.

<select id="ordersSelect" class="drop-down" onchange="somemethod()"> 
    <option value="A100/000/00">A100/000/00</option>
    <option value="A100/000/00">A100/000/00</option>
    <option value="A100/000/00">A100/000/00</option>
</select>

Не стесняйтесь, дайте мне знать, какой браузер вы используете, и, возможно, опубликуйте "окончательный" вывод html вашей страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...