好的,我有一个基于 spring mvc 的 json web 服务。这是一个测试应用程序,我在构建基于 spring mvc 的 restful json 服务时从未见过这样的问题。我的测试服务的输出总是返回空 json 对象,后跟 && 后跟我要返回的数据。所以结果看起来像这样:
{} && {"status":200,"serverTime":"2013 年 1 月 6 日 7:35:45 PM EST"}
我的控制器方法处理这个非常简单的 GET 请求的代码是:
@RequestMapping(value = "/test.json", method = RequestMethod.GET)
public ModelMap test(ModelMap m, HttpServletRequest request,
Locale locale) {
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
m.addAttribute("serverTime", formattedDate);
m.addAttribute("status", 200);
return m;
}
我一生都无法弄清楚那个额外的空 {} json 对象是从哪里来的。我的弹簧配置如下所示:
<beans:bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<beans:property name="mediaTypes">
<beans:map>
<beans:entry key="html" value="text/html" />
<beans:entry key="json" value="application/json" />
</beans:map>
</beans:property>
<beans:property name="defaultViews">
<beans:list>
<beans:bean
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<beans:property name="prefixJson" value="true" />
</beans:bean>
</beans:list>
</beans:property>
<beans:property name="viewResolvers">
<beans:list>
<beans:bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<beans:property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
</beans:list>
</beans:property>
任何帮助将不胜感激。我在一个星期天花了 6 个小时试图弄清楚为什么会这样。