春季 MVC 3 返回内容类型:文本/纯文本

我想在页面上显示简单的文本,因此我想返回as.Content-Typetext/plain

使用下面的代码,我在页面上看到纯文本,但是返回仍然是 。Content-Typetext/html

我该如何解决这个问题?

注意:我正在将磁贴与 Spring MVC 配合使用。返回的“m.health”指向映射到运行状况的磁贴 def.jsp该磁贴仅包含下面的 1 行。

更新说明:我无法控制 HTTP 标头请求中的 或 值。我希望我的响应无论发出哪种请求都返回。Content-TypeAccepttext/plain

控制器:

@RequestMapping(value = "/m/health", method = RequestMethod.GET, headers = "Accept=*")
public String runHealthCheck(HttpServletResponse response, HttpServletRequest request, Model model) throws Exception {
    model = executeCheck(request, response, TEMPLATE, false, model);
    model.addAttribute("accept", "text/plain");
    response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");
    return "m.health";
}

JSP:

${状态}


答案 1

如果您使用@ResponseBody另外注释方法,它应该有效:

@RequestMapping(value = "/",
                method = RequestMethod.GET)
@ResponseBody
public String plaintext(HttpServletResponse response) {
    response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");
    return "TEXT";
}

答案 2

您可以尝试使用 设置注释的值。Spring文档将其列为示例produces@RequestMappingtext/plain


推荐