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

10 浏览
0 Comments

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

我在JSP中有一个表单。我需要根据请求对象(来自servlet)来填充它。我该如何使用JavaScript来访问请求对象属性,或者如果你能给我提供任何其他更好的动态填充表单的方法吗?

0
0 Comments

问题的原因:在JSP页面中,想要将Java / Servlet / JSP / JSTL / EL变量传递到JavaScript中。

解决方法:使用

在JavaScript中,使用以下代码来获取嵌入的JSON数据:

var fetchedJson = JSON.parse(document.getElementById('jsonData').textContent);

通过以上代码,就可以将Java / Servlet / JSP / JSTL / EL变量传递到JavaScript中了。

0
0 Comments

问题的原因是希望在JavaScript中访问Java / Servlet / JSP / JSTL / EL变量。解决方法是将Java变量打印为JavaScript变量,并确保生成的HTML / JS代码输出是语法上有效的。

在JSP中,可以通过以下几种方式打印Java变量:



...

假设Java变量的值为"bar",那么JSP将生成以下HTML代码:



...

需要注意的是,为了表示JS中的字符串类型变量,这些单引号是必需的。如果使用了`var foo = ${foo};`,那么将打印`var foo = bar;`,在尝试在JS代码中进一步访问时可能会出现"bar is undefined"错误(可以在浏览器的Web开发工具的JS控制台中查看JS错误,按F12在Chrome / FireFox23+ / IE9+中打开)。还要注意,如果变量表示一个不需要引号的数字或布尔值,那么它将正常工作。

如果变量来自用户控制的输入,请注意考虑XSS攻击漏洞和JS转义。在我们的EL Wiki页面的底部,您可以找到一个示例,该示例演示了如何创建一个自定义EL函数,用于在JS中安全使用Java变量。

如果变量更复杂,例如一个Java bean,或者是一个列表,或者是一个映射,则可以使用许多可用的JSON库将Java对象转换为JSON字符串。以下是一个示例,假设使用Gson:

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

使用此方法时,不再需要将其打印为带引号的字符串。


其他相关的参考链接:

- [Our JSP wiki page](https://stackoverflow.com/tags/jsp/info) - 查看"JavaScript"章节。

- [How to escape JavaScript in JSP?](https://stackoverflow.com/questions/9708242/)

- [Call Servlet and invoke Java code from JavaScript along with parameters](https://stackoverflow.com/questions/2132242)

- [How to use Servlets and Ajax?](https://stackoverflow.com/questions/4112686/)

希望我的回答对您有所帮助。

0
0 Comments

问题的原因是因为在客户端使用JavaScript时,无法直接访问Java/Servlet/JSP/JSTL/EL的变量,需要手动解析查询字符串来获取参数。解决方法是在服务端的JSP中通过request.getParameter()方法获取参数,并将其赋值给相应的表单字段。

解决方法示例代码如下:

"/>

同时,为了避免XSS攻击和注入攻击,还需要对获取的参数进行合适的过滤和处理。

0