我正在尝试映射页面请求以同时返回视图和 JSON对象.为此,我正在使用Jackson JSON提供商
这是我的Controller方法
@RequestMapping(method = RequestMethod.GET, value = "/reports")
public String getFiles(Model model) {
//
//build array list
//
return files;
}
Run Code Online (Sandbox Code Playgroud)
这会返回我的view(WEB-INF/jsp/reports.jsp),但是没有Jackson构建的JSON对象,所以当然我需要注释@ResponseBody用于自动将JSON对象写入http响应的方法,并返回filesArrayList ...
@RequestMapping(method = RequestMethod.GET, value = "/reports")
@ResponseBody
public ArrayList<String> getFiles(Model model) {
//
///build array list
//
return files;
}
Run Code Online (Sandbox Code Playgroud)
并且确实返回了JSON对象,但是在新视图/空白html文档中.是否可以同时返回JSON对象并重定向到"reports.jsp"?
我在你的第一个例子中假设你实际上是在返回"reports"而不是files.如果你想返回一个视图,你也不能返回一个响应体 - 你只能返回一个东西.
因此,要么将其拆分为两个请求,要么将JSON放入模型中,并在JSP中检索它,例如
Java的:
ObjectMapper mapper = new ObjectMapper();
model.addAttribute("json", mapper.writeValueAsString(files));
Run Code Online (Sandbox Code Playgroud)
JSP:
<script>
var files=${json};
</script>
Run Code Online (Sandbox Code Playgroud)