将数组从 Spring bean 转换为 JSON 以在 JSP 中引用

Converting array from Spring bean into JSON to reference in JSP

本文关键字:以在 JSON JSP 引用 转换 数组 Spring bean      更新时间:2023-09-26

我的目标是从Spring bean中获取一个对象数组,并将其转换为要在JavaScript中引用的JSON对象。我正在尝试在JSP中完成所有这些操作。

关键组件包括:

homePageManager - Spring Bean,为用户管理主页。我已通过"InternalResourceViewResolver"将其显示为bean。

getHomePages - 主页管理器上返回列表的方法

static String UIUtils.toJSONObject(object) - 将任何对象转换为其JSON等效对象的实用程序方法(基本上是对Jackson lib的包装器调用)

我想获取返回的对象,将其转换为其JSON等效项,并在Javascript中使用它在选项卡页面之间切换,所有这些都通过JSP进行。

但是因为我对JSP/Javascript等的了解有限。我在这里

打结。

之后处理 JSON 对象等的 Javascript 部分都工作正常,因为我用静态值"模拟"了 JSON 对象来测试它。这只是两者之间的管道。

我可以在homePageManager上创建一个返回选项卡列表 JSON 版本的方法,但对我来说这是错误的,因为这样做不是这个 bean 的责任。

我最近的尝试之一是:-

 <%@ page import="com.adv.e5ahr.jasperserver.ui.utils.UIUtils" %>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 <c:set var="tabList" value="${homePageManager.getHomePages()}"/>
 <script>
 var tabs = ${tabList};
 console.log('tabs='+tabs));
 var tablist = <% UIUtils.toJSONObject(tabs); %>; 
 console.log('tablist=' + tablist);
 ...
 </script>

如果你说homePageManager不负责创建一个JSON版本的tablist,那么你总是可以创建一个bean来为你做这个翻译。
在加载此 jsp 之前,将 json 添加到模型/会话中,并且只在 java 脚本中进行 dom 修改。在您的页面上使用脚本可能不是一个好主意。