| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Безопасный вывод в jstl |
| Автор: jecl 30.3.2009, 16:53 |
| Всем привет! Часто сталкивался с проблемой вывода стрингов содержащих спец символы. В скриплетах просто использовал свой клас который экранировал ' и ", а также прочие символы на нужные, что бы хтмл и жаваскрипт не ломался. На данном этапе проект переходит от скриплетов к jstl, вопрос: есть ли какие-то стандартые решения описанной проблемы? Да, в functions есть replace() но вызывать его для каждого символа не удобно. Единственный вывод, кот я вижу сейчас, - писать свой тег, в котором использовать тот же StringEscapeUtill Ну и пару вопросов для рассуждения. В любом случае в бекенде(БД) мы храним чистую инфу, никакого экрана там нет, экран нужен при выводе этой инфы. Стоит ли его делать на уровне вывода(вью), с помощью тех же тегов либо же на уровне получения данных, при билде коллейций, в сервлет-контроллере скажем? Вроде тривиальная задача, а очевидных элегантных решений не вижу, подскажите плз. Да, еще такой вопрос, я так понимаю, используя какие-либо рич гуи фреймворки(gwt) проблема отпадает, не будет же ломаться компонент из-за того что в данных есть спец символы..? Если так, интерестно какой подход там использован для безопасного вывода. Спасибо! |
| Автор: vicod 30.3.2009, 17:26 | ||||
так
или так
оно? |
| Автор: jecl 30.3.2009, 18:23 | ||||
Похоже на правду, но с одинарной кавычкой не пашет исходник jsp
исходник полученной хтмл <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 ?')) Вообще одинарная кавычка экранируется слешом \' Сенк за тык пальцем, но все же что с один кавычкой делать? |