gpt4 book ai didi

java - Struts:从请求范围获取ElementByID (Javascript)

转载 作者:行者123 更新时间:2023-12-01 15:29:15 29 4
gpt4 key购买 nike

我正在用 Struts 编写一个应用程序,我需要在 jquery 日历中突出显示一些提醒。我有以下问题:

在我的操作 watchCalendar.java(它转发到我正在处理的名为 sideCalendar.jsp 的 jsp)中,我在请求范围上设置了一个属性,即:

  request.setAttribute("reminders",queryResults);

我想从 java 脚本访问请求范围中的此属性(这是我的问题)。实际上,我想访问这个提醒数组并获取每个提醒的开始日期和结束日期,以便我可以在日历上突出显示其中的范围。这样,用户就会知道他的日历上有多少天可以满足提醒中的请求。

我尝试使用:

 var arrayOfReminders = document.getElementById("reminders");

这样我就可以将请求范围内的提醒数组复制到我的 View 组件的 javascript 区域。

然后我使用以下方法将其打印在屏幕上:

document.write(reminders);

但它只在 View 上打印“null”。

我在互联网上搜索了很多,除了使用 getElementById() 函数之外,没有找到任何进一步的信息。

我会继续调查,但我真的非常感谢一些指导。

非常感谢您的阅读!!

P.D:我可以从数据库中获取提醒数组,并将其设置在操作上,没有任何问题。我认为我的主要问题是如何从 View 中的 javascript 访问此属性。

最佳答案

您在 Struts 中设置的请求范围仅限于服务器端,因此 Javascript 无法获取它。解决这个问题的一种方法是在 JSP 中呈现某些内容。例如:

<script>
var reminders = []; //create a new array global
<c:forEach items="${reminders}" var="reminder">
reminders.push({start: "${reminder.startDate}", end: "${reminder.endDate}"});
</c:forEach>
</script>

现在您可以从 Javascript 访问页面中任何位置的 reminders 变量。例如:

reminders[21].end; // July 7, 2020

更好的方法是先将服务器(Struts)端的请求属性设置为 JSON 格式:

request.setAttribute("reminders", convertToJSON(queryResults)); 

然后,将其呈现到 JSP 中并将其直接分配给变量:

var reminders = ${reminders};

关于java - Struts:从请求范围获取ElementByID (Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762704/

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