使mvc控制器返回文本而不是json

时间:2015-05-14 13:44:40

标签: json spring-mvc

我正在尝试在控制器中创建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

有什么问题?

2 个答案:

答案 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的更多信息,就不可能提供更多答案。