【发布时间】:2015-02-16 00:19:48
【问题描述】:
这是我的控制器。
@RequestMapping(value="/updateItem.htm", method = RequestMethod.GET, headers="Accept=*/*", produces = "application/json; charset=utf-8")
public @ResponseBody ModelAndView updateItem(ModelAndView model) {
List<String> list = aspireDAO.getSingleCol("select prod_id from items order by prod_id asc");
JsonArray jArray = AspireUtil.toJsonArray(list);
model.setViewName("UpdateItem");
model.addObject("items", jArray);
System.out.println(jArray);
return model;
}
spring-servlet.xml 中的杰克逊支持
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="mediaTypes">
<map>
<entry key="html" value="text/html"/>
<entry key="json" value="application/json"/>
</map>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="prefixJson" value="true"/>
</bean>
</list>
</property>
</bean>
json 数组在我的控制器 sysout 语句中很好。当我检查页面的来源时,json数组会像这样打印
'["amgc","atup","ciwy","eyqe","ijm
可能的原因是什么。如何解决。
问候
亚当
【问题讨论】:
-
System.out.println(jArray);的输出是什么,你期望什么而不是'[&#034;amgc&#034;,&#034;atup&#034;, ...? -
控制器中json数组的sysout是["amgc","atup","ciwy","eyqe","ijmj","jein","jyld","lvwe","两"]
-
我观察到的是,如果我返回 jsonArray.toString() 我得到 json 数组,但不是在我看来,只是在平面页面上。我想要视图上的那个数组,我认为在这种情况下不应该使用@responsebody。如果我错了,请纠正我
-
这不是和ajax调用的。请求 url 并返回一个 jsp 我想要那个 jsp 上的 json 数组。
-
我第一次没有读完。您将 JsonArray 放入模型中并将其传递给 jsp 视图,对吗?你如何在 JSP 中使用它?顺便说一句,
&#034;是"的实体表示。
标签: json spring spring-mvc jackson gson