【发布时间】:2011-08-05 14:22:02
【问题描述】:
如何将 el 代码和 jstl 代码添加到动态生成的文本框中,例如 ${fn:escapeXml(param.foo)} 作为文本框的值。
【问题讨论】:
标签: javascript jstl el
如何将 el 代码和 jstl 代码添加到动态生成的文本框中,例如 ${fn:escapeXml(param.foo)} 作为文本框的值。
【问题讨论】:
标签: javascript jstl el
这是不可能的。 Webbrowser 不理解 JSTL 和 EL 代码。它只理解 HTML/CSS/JS 代码。此 JSTL/EL 代码必须在网络服务器中运行。最好的办法是让 JavaScript 向服务器发送一个 Ajax 请求,服务器反过来运行一些带有 JSTL/EL 代码的 JSP,然后返回生成的 HTML 响应,最后让 JavaScript 显示该 HTML。
如果您唯一的功能要求是像 fn:escapeXml() 对 JSP 那样对 JavaScript 变量进行 HTML/XML 编码,那么请前往以下问题的答案:HTML-encoding lost when attribute read from input field。
请注意,只要数据完全存储在客户端,就不存在 XSS 风险。一旦您将数据发送到服务器并且服务器将其存储并重新显示给另一个最终用户,那么就有可能存在 XSS 风险。对于 JSP 中的 fn:escapeXml(),可以使用它,因为它是重新显示它的服务器。
【讨论】:
如果您使用 javascript 生成动态文本框,那么您在客户端有页面,所以现在您没有机会替换 EL 解析..
【讨论】:
你不能那样做。 EL 和 JSTL 在服务器上执行。之后,JavaScript 在客户端上执行。 JavaScript 不能做任何事情来影响 EL 或 JSTL。
【讨论】: