【问题标题】:Converting array from Spring bean into JSON to reference in JSP将数组从 Spring bean 转换为 JSON 以在 JSP 中引用
【发布时间】:2015-03-16 12:03:07
【问题描述】:

我的目标是从 Spring bean 中获取一组对象,并将它们转换为 JSON 对象,以便在 JavaScript 中引用。我正在尝试在 JSP 中完成这一切。

关键组件是:

homePageManager - 为用户管理主页的 Spring Bean。我已通过“InternalResourceViewResolver”将此作为 bean 可见。

getHomePages - 返回列表的 homePageManager 方法

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

我想获取返回的对象,将其转换为等效的 JSON,并在 Javascript 中使用它在标签页之间切换,全部通过 JSP。

但由于我对 JSP/Javascript 等的了解有限。我在这里纠结。

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

我可以在homePageManager 上创建一个方法,它返回一个 JSON 版本的 tablist,但对我来说这是错误的,因为这个 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>

【问题讨论】:

    标签: java javascript json spring jsp


    【解决方案1】:

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

    【讨论】:

    • 我采用了这种方法,即向会话添加了一个包含 JSON 表示的会话属性,并将其称为 ${homePages}
    猜你喜欢
    • 2018-12-08
    • 2018-07-10
    • 2015-02-16
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    相关资源
    最近更新 更多