Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безопасный вывод в jstl 
:(
    Опции темы
jecl
Дата 30.3.2009, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 12.10.2007

Репутация: нет
Всего: нет



Всем привет!
Часто сталкивался с проблемой вывода стрингов содержащих спец символы. В скриплетах просто использовал свой клас который экранировал ' и ", а также прочие символы на нужные, что бы хтмл и жаваскрипт не ломался. На данном этапе проект переходит от скриплетов к jstl, вопрос:
 есть ли какие-то стандартые решения описанной проблемы?
Да, в functions есть replace() но вызывать его для каждого символа не удобно.
Единственный вывод, кот я вижу сейчас, - писать свой тег, в котором использовать тот же StringEscapeUtill

Ну и пару вопросов для рассуждения.
В любом случае в бекенде(БД) мы храним чистую инфу, никакого экрана там нет, экран нужен при выводе этой инфы. Стоит ли его делать на уровне вывода(вью), с помощью тех же тегов либо же на уровне получения данных, при билде коллейций, в сервлет-контроллере скажем?
Вроде тривиальная задача, а очевидных элегантных решений не вижу, подскажите плз.

Да, еще такой вопрос, я так понимаю, используя какие-либо рич гуи фреймворки(gwt) проблема отпадает, не будет же ломаться компонент из-за того что в данных есть спец символы..?
Если так, интерестно какой подход там использован для безопасного вывода.

Спасибо!
PM MAIL   Вверх
vicod
Дата 30.3.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 24.10.2007
Где: odessa.ua

Репутация: 0
Всего: 2



так
Код

<c:out value="${myString}"/>

или так
Код

<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
${fn:escapeXml(myString)}

оно?
PM MAIL   Вверх
jecl
Дата 30.3.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 12.10.2007

Репутация: нет
Всего: нет



Код

{fn:escapeXml(myString)}
$
Похоже на правду, но с одинарной кавычкой не пашет
исходник jsp
Код

<a onclick="return(confirm('Really remove   ${fn:escapeXml(requestScope.roleName)}?'))" href=

исходник полученной хтмл
<a onclick="return(confirm('Really remove Test'role ?'))" 

Ошибка
Error: missing ) after argument list
Line: 1, Column: 36
Source Code:
return(confirm('Really remove   Test'role ?'))

Вообще одинарная кавычка экранируется слешом \'

Сенк за тык пальцем, но все же что с один кавычкой делать?

Это сообщение отредактировал(а) jecl - 30.3.2009, 18:23
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.