栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在JavaScript中访问Java / Servlet / JSP / JSTL / EL变量

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在JavaScript中访问Java / Servlet / JSP / JSTL / EL变量

您需要认识到Java / JSP仅仅是HTML/CSS/JS代码生产者。因此,您要做的就是让JSP像打印Javascript变量一样打印Java变量,并且所生成的HTML / JS代码输出在语法上是有效的。

假设EL范围内Java变量在EL范围内可用,以下

${foo}
是一些如何打印它的示例:

<script>var foo = '${foo}';</script><script>someFunction('${foo}');</script><div onclick="someFunction('${foo}')">...</div>

假设Java变量具有value

"bar"
,那么JSP最终将生成此HTML,您可以通过右键单击Webbrowser中的 View Source
来验证该HTML :

<script>var foo = 'bar';</script><script>someFunction('bar');</script><div onclick="someFunction('bar')">...</div>

请注意,这些单引号是强制性的,以便表示JS中的字符串类型的变量。如果您使用

var foo = ${foo};
它,则它将打印
var foo =bar;
,当您尝试在JS代码中进一步访问它时,它可能会导致“ bar is undefined”错误(您可以在浏览器的Web开发人员工具集的JS控制台中看到JS错误)。可以通过在Chrome / FireFox23 + / IE9+中按F12打开)。还要注意,如果变量代表数字或布尔值(不需要用引号引起来),那么它将正常工作。

如果变量恰好来自用户控制的输入,请记住要考虑XSS攻击漏洞和JS逃逸。在我们的ELWiki页面底部附近,您可以找到一个示例,该示例如何创建自定义EL函数,该函数转义Java变量以在JS中安全使用。

如果变量比较复杂,例如Javabean或其列表或映射,则可以使用许多可用的JSON库之一将Java对象转换为JSON字符串。这是假设Gson的示例。

String someObjectAsJson = new Gson().toJson(someObject);

请注意,通过这种方式,您不再需要将其打印为带引号的字符串。

<script>var foo = ${someObjectAsJson};</script>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/402577.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号