我正在尝试在控制器中创建Spring MVC方法,以返回text
而不是json
。
我当前的方法看起来像这样
@RequestMapping(value = "/upload", method = RequestMethod.POST, produces = "text/html")
public ModelAndView uploadFile(@RequestParam("file") MultipartFile file) {
LOGGER.debug("Attempt to upload file with template.");
try {
String fileContent = FileProcessUtils.processFileUploading(file);
return createSuccessResponse(fileContent);
} catch (UtilityException e) {
LOGGER.error("Failed to process file.", e.getWrappedException());
return createResponse(INTERNAL_ERROR_CODE, e.getMessage());
}
}
但响应头content-type: application/json
。
我试图将HttpServletResponse
传递给控制器并设置内容类型,但它仍然继续返回json
。
有什么问题?
答案 0 :(得分:0)
你可以这样做:
@RequestMapping(value = "/foo", method = RequestMethod.GET)
public ResponseEntity foo() throws Exception {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.TEXT_HTML);
return ResponseEntity.ok().headers(headers).body("response");
}
或者这样做:
@RequestMapping(value = "/foo", method = RequestMethod.GET, produces = MediaType.TEXT_HTML_VALUE)
两者都很好。
答案 1 :(得分:0)
FileProcessUtils是什么?谷歌没有提出任何建议。它是由您或您的组织创建的类吗?看起来该方法正在返回一个内容类型为application / json的响应。你期待它返回什么,为什么?您必须以某种方式解析json以提取构建ModelAndView所需的数据,或者找到另一种返回所需内容的方法。
但是如果没有关于FileProcessUtils的更多信息,就不可能提供更多答案。