gpt4 book ai didi

java - 如何访问 javascript 中的 servlet 变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:50:16 26 4
gpt4 key购买 nike

我有一个 servlet,它有一个包含 JSON 字符串的变量。

JSONObject obj = new JSONObject();
obj.put("parameter", jsonList);
request.setAttribute("jsonstring", obj.toString());
RequestDispatcher rd = request.getRequestDispatcher("/file.jsp");
rd.forward(request, response);

现在我将请求和响应对象转发到包含 JS 文件的 JSP 页面。我如何访问 JS 文件中 jsonstring 变量的值。因为我需要使用 jQuery 进一步解析我的 JSON 字符串。

我试过在我的 JS 文件中这样做,正如我在网上的一些帖子中看到的那样。但它似乎对我不起作用。

var test = '<%=request.getAttribute("jsonstring")%>'

请指导我。谢谢。

最佳答案

如果 JSP 文件使用 <script>标记加载外部 JavaScript 文件,如下所示:

<script type="text/javascript" src="js/yourFile.js"></script>

那就不行了。您拥有的是一个 JSP scriptlet,它仅在执行 JSP 文件期间有意义。那yourFile.js文件不会在服务器端被解析,因为它不需要。只有浏览器知道如何处理 <script>标记并向服务器发出加载 JavaScript 的请求。

在这些情况下,您可以在 JSP 中执行如下操作:

<script type="text/javascript">
var test = <%=request.getAttribute("jsonstring")%>;
</script>
<script type="text/javascript" src="js/yourFile.js"/></script>

由于 JSP scriptlet 位于您的 JSP 文件中,它现在实际上得到了正确处理,而是输出对象/数组的有效 JSON 以存储在全局范围内 test变量,然后您可以在 yourFile.js 中引用它.

关于java - 如何访问 javascript 中的 servlet 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21457408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com