我创建了一个带有方法处理程序的控制器,
@RequestMapping( value = {"/membersjson"},method = RequestMethod.GET)
public @ResponseBody String getMembers(Model model) {
List<Member> members = memberService.getMembers();
model.addAttribute("members",members);
return "jsontemplate";
}<bean id="jsontemplate"
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />我希望output在json中,但是输出却是"jsontemplate“。有谁能解释一下原因吗。提前谢谢。
发布于 2012-02-26 15:04:19
当您使用MappingJacksonJsonView时,@ResponseBody或任何其他视图或视图解析器bean都是无关的。相反,Spring将尝试将方法的返回值直接转换为响应。在本例中,它决定将其转换为字符串响应。
首先,确保您已经在上下文中声明了<mvc:annotation-driven/>,并声明了杰克逊可以在类路径上使用。。还要确保浏览器在其application/json头中发送Accept。
发布于 2012-02-26 15:03:22
您不应该返回字符串"jsontemplate";您应该返回List<Member>或Model。json映射应该自动发生。
https://stackoverflow.com/questions/9454034
复制相似问题