JSP: тег JSTL


написание страницы JSP, что именно делает <c:out> сделать? Я заметил, что следующие оба имеют одинаковый результат:

<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
5 102

5 ответов:

c:out экранирует HTML-символы, чтобы избежать межсайтовых сценариев.

Если person.name = <script>alert("Yo")</script>

скрипт будет выполняться во втором случае, но не при использовании c:out

Как сказал Уилл Вагнер, в старой версии jsp вы всегда должны использовать c:out для вывода динамического текста.

более того, используя этот синтаксис:

<c:out value="${person.name}">No name</c:out>

вы можете отобразить текст "без имени", когда имя равно null.

c:out также имеет атрибут для присвоения значения по умолчанию, если значение person.name оказывается null.

источник: out (сгенерированная Tlddoc документация)

можно явно включить экранирование XML-сущностей с помощью атрибута escapeXml значение равно true. К вашему сведению, это по умолчанию "true".

старые версии JSP не поддерживали второй синтаксис.