使用没有ajax的json将bean数据从jsp传递到js的最简洁方法

时间:2016-06-02 09:16:01

标签: javascript java spring jsp jsp-tags

在不使用ajax的情况下将bean从spring控制器传递给js的最简洁方法是什么?

我使用一个返回jsp和bean的spring控制器,但我想将bean的内容传输到我的页面使用的js。

我已经读过我可以使用控制器将我的bean转换为json,然后将其放入js var中,

    mav.put("beanInJson",toJson(mybean))
...
<script> var bean=Json.stringify('${beanInJson}')</script

但我只想在一步中完成,而无需在控制器中进行转换

我搜索了一些我可以使用的jsp taglib:

mav.put("bean", mybean)
...
<script> var bean:${fn:toJson(bean)}</script>

你知道任何允许的lib吗?这是最干净的方式吗?没有使用ajax?

2 个答案:

答案 0 :(得分:1)

在代码中的某处你需要进行转换。如果你不想在控制器中执行它,你可以在你的JSP中执行它。要将对象转换为JSON,你可以使用Jackson库的ObjectMapper类

答案 1 :(得分:0)

在JSP中你可以写:

<script>
    var mybean = ${beanInJson};
</script>

在Controller中你可以写:

    mav.put("beanInJson", new JSONObject(mybean));

您需要的一切是添加 json 依赖项:

    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20160212</version>
    </dependency>
Java代码中的

mybean可以是Object或Map,请参阅org.json:json javadoc。