我已经定义了一个控制器(见下文),并指定它生成JSON,但是在请求(使用curl)时,返回Content-Type
text/html
。我可以通过直接设置HttpServletResponse
上的标题来覆盖它,但我不确定这是否是预期的行为,如果是这样,我正在做的是正确的解决方法。
@Controller
@RequestMapping(value = "/test", produces = MediaType.APPLICATION_JSON_VALUE)
public class Test {
@RequestMapping(value = "/home", method = RequestMethod.GET)
public String home(final Model model, final HttpServletRequest request, final HttpServletResponse response) {
return "some/freemarker/template/path";
}
}
Content-Type: text/html;charset=UTF-8
更新
我应该补充一点,我使用Freemarker作为视图技术。
答案 0 :(得分:0)
为了让Controller返回JSON,您需要执行
使用@ResponseBody
@Controller
@RequestMapping(value = "/test", produces = MediaType.APPLICATION_JSON_VALUE)
public class Test {
@ResponseBody
public String json() {
}
}
使用@RestController
注释
@RestController
@RequestMapping(value = "/test", produces = MediaType.APPLICATION_JSON_VALUE)
public class Test { ... }