gpt4 book ai didi

javascript - 将 json 数组从 servlet 获取到 javascript 变量

转载 作者:行者123 更新时间:2023-11-30 06:46:26 25 4
gpt4 key购买 nike

我有一个 java servlet,它以数组格式将 json 对象发送到 JavaScript 变量中的 jsp 页面。

这是我的 servlet(其中一部分):

List<HistoryLeavesScalar> returnedPastInfo = SaveDAO.getPastInformation(username);
JSONArray jsonArray = new JSONArray(returnedPastInfo);
String s = jsonArray.toString();
System.out.println("\n\n"+"JSON ARRAY is : "+s);

HttpSession session = request.getSession(true);
session.setAttribute("jsonArray",jsonArray);
this.getServletContext().getRequestDispatcher("/calendar.jsp")
.forward(request, response);

system.out.print JSON 在我的控制台中是这样的:[{"endDate":"2017-04-22","re​​q":"2017-04-19","nr":2,"type":"CO","startDate":"2017-04-20 ","出发日期":"2017-04-19"},{"endDate":"2017-04-22","re​​q":"2017-04-20","nr":3,"type": "CM","startDate":"2017-04-20","出发日期":"2017-04-19"}]

这个 Json 数组我希望仅以这种格式在 javascript 标记中可见:(这是 calendar.jsp - 它的一部分)

    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page import="javax.servlet.jsp.jstl.core.*"%>
<%@ page import="javax.servlet.jsp.el.*" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<script type="text/javascript">

var USER_DAYS = [
<c:forEach items="${jsonArray}" var="jsonArray">


{
id: '${jsonArray.nr}',
date: '${jsonArray.req}',
title: '${jsonArray.type}',
startDate: '${jsonArray.startDate',
endDate: '${jsonArray.endDate',
allDay: true,
className: 'done'
}
</c:forEach>
];
</script>

我不知道如何访问来自 USER_DAYS 变量 (javascript) 中 servlet 的 json 中的值。如何将 json 中的值放入 id、date、title、startDate、endDate 中。

我不知道 jSTL 是否可以在 javascript 标签中工作。我不知道如何打印这些值(无论它们是什么 - 它可以包含许多信息,全部采用该格式)。

我想提一下,如果我将 javascript 变量更改为这样的东西:它就可以正常工作。但这些是我手写的值,但现在我希望它们是动态的......并且这些信息必须来自 servlet 到 calendar.jsp 中。

var USER_DAYS   =   [
{
id: 1,
date: '2017-04-05',
title: 'CO',
start: new Date(2017, 3, 5),
end: new Date(2017, 3, 7),
allDay: true,
className: 'done'
},

有人可以帮助我吗?

最佳答案

您已经将其作为字符串:

String s = jsonArray.toString();

s 存储在 session 中,而不是 jsonArray

session.setAttribute("jsonArray", s); 

并在 servlet 中打印它:

var USER_DAYS = ${jsonArray};
<小时/>

我的测试

Java servlet(带有示例数据):

enter image description here

bingo.jsp:

enter image description here

HTML 结果:

enter image description here

渲染结果:

enter image description here

它有效。

关于javascript - 将 json 数组从 servlet 获取到 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43609774/

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