程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在JavaScript中访问Java / Servlet / JSP / JSTL / EL变量大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在JavaScript中访问Java / Servlet / JSP / JSTL / EL变量?

开发过程中遇到在JavaScript中访问Java / Servlet / JSP / JSTL / EL变量的问题如何解决?下面主要结合日常开发的经验,给出你关于在JavaScript中访问Java / Servlet / JSP / JSTL / EL变量的解决方法建议,希望对你解决在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>
@H_616_11@

假设Java变量具有value "bar",那么JsP最终将生成此HTML,您可以通过右键单击Webbrowser中的 VIEw source 来验证该HTML :

<script>var foo = 'bar';</script>



<script>someFunction('bar');</script>



<div onclick="someFunction('bar')">...</div>
@H_616_11@

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

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

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

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

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

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

解决方法

我在JSP中有一个表格。我必须基于请求对象(来自servlet)填充它。如何使用Java
Script访问请求对象属性,或者可以建议我其他更好的方法来动态填充表单?

大佬总结

以上是大佬教程为你收集整理的在JavaScript中访问Java / Servlet / JSP / JSTL / EL变量全部内容,希望文章能够帮你解决在JavaScript中访问Java / Servlet / JSP / JSTL / EL变量所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。