在不使用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?
答案 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。