如何将el代码和jstl代码添加到动态生成的文本框中,如$ {fn:escapeXml(param.foo)}作为textbox的值。
答案 0 :(得分:1)
那是不可能的。 Webbrowser不了解JSTL和EL代码。它只能理解HTML / CSS / JS代码。此JSTL / EL代码必须在Web服务器中运行。最好的办法是让JavaScript向服务器发送一个Ajax请求,然后服务器运行一些带有JSTL / EL代码的JSP,然后返回生成的HTML响应,最后让JavaScript显示该HTML。
如果您的唯一功能要求是对JavaScript进行HTML / XML编码,而fn:escapeXml()
对JSP进行编码,那么请转到此问题的答案:HTML-encoding lost when attribute read from input field。
请注意,只要数据完全存储在客户端,就没有XSS风险。一旦将数据发送到服务器并且服务器将其存储并重新显示给另一个最终用户,那么就存在XSS风险。因为JSP中的fn:escapeXml()
可以使用,因为它是重新显示它的服务器。
答案 1 :(得分:0)
如果你使用javascript生成动态文本框,你在客户端有页面,所以现在你没有机会替换EL解析..
答案 2 :(得分:0)
你做不到。 EL和JSTL在服务器上执行。之后,JavaScript在客户端上执行。 JavaScript无法做任何影响EL或JSTL的事情。