Spring MVC 3返回内容类型:text / plain

时间:2012-01-21 07:57:45

标签: java spring-mvc content-type apache-tiles

我想在页面上显示简单文字,因此我希望将Content-Type作为text/plain返回。

使用下面的代码,我在页​​面上看到纯文本,但返回Content-Type仍为text/html

我该如何解决这个问题?

注意:我正在使用Tiles和Spring MVC。返回的“m.health”指向一个tile def,它映射到一个health.jsp,它只包含下面的1行。

更新注意:我无法控制HTTP标头请求中的Content-TypeAccept值。无论发出什么样的请求,我希望我的回复都会返回text/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:

  

$ {状态}

2 个答案:

答案 0 :(得分:51)

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

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

答案 1 :(得分:9)

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