Как добавить код EL или JSTL код через JavaScript - PullRequest
0 голосов
/ 05 августа 2011

как добавить код el и jstl в текстовое поле, сгенерированное дианмически, например, $ {fn: escapeXml (param.foo)} в качестве значения текстового поля.

Ответы [ 3 ]

1 голос
/ 05 августа 2011

Это невозможно. Веб-браузер не понимает код JSTL и EL. Он понимает только код HTML / CSS / JS. Этот код JSTL / EL должен запускаться на веб-сервере. Лучше всего, чтобы JavaScript отправлял запрос Ajax на сервер, который, в свою очередь, запускает JSP с кодом JSTL / EL, а затем возвращает сгенерированный ответ HTML и, наконец, позволяет JavaScript отображать этот HTML.

Если ваше единственное функциональное требование заключается в HTML / XML-кодировании переменной JavaScript, как fn:escapeXml() делает для JSP, тогда переходите к ответам на этот вопрос: HTML-кодировка теряется при чтении атрибута из поля ввода .

Обратите внимание, что риск XSS отсутствует, если данные хранятся полностью на стороне клиента. Как только вы отправляете данные на сервер, а сервер сохраняет их и повторно отображает их для другого конечного пользователя, возникает риск XSS. Для этого fn:escapeXml() в JSP можно просто использовать, так как это сервер, который отображает его снова.

0 голосов
/ 05 августа 2011

Вы не можете этого сделать.EL и JSTL выполняются на сервере.JavaScript выполняется на клиенте после этого.JavaScript не может ничего сделать, чтобы повлиять на EL или JSTL.

0 голосов
/ 05 августа 2011

если вы генерируете динамическое текстовое поле с использованием javascript, у вас есть страница на стороне клиента, поэтому у вас нет шансов заменить разрешенный EL ..

...