JSP: тег <c: out> JSTL - PullRequest
       17

JSP: тег <c: out> JSTL

107 голосов
/ 14 ноября 2008

Написание страницы 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 ]

148 голосов
/ 14 ноября 2008

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

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

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

122 голосов
/ 14 ноября 2008

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

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

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

Вы можете отобразить текст «Без имени», когда имя равно нулю.

5 голосов
/ 02 июля 2009

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

5 голосов
/ 14 ноября 2008

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

Источник: out (Документация, сгенерированная TLDDoc)

4 голосов
/ 14 ноября 2008

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

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