22

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

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

我怎样才能解决这个问题?

注意:我将 Tiles 与 Spring MVC 一起使用。返回的“m.health”指向映射到仅包含下面 1 行的 health.jsp 的切片 def。

更新注意:我无法控制 HTTP 标头请求中的Content-TypeorAccept值。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:

${状态}

4

2 回答 2

56

如果您使用@ResponseBody 额外注释您的方法,它应该可以工作:

@RequestMapping(value = "/",
                method = RequestMethod.GET)
@ResponseBody
public String plaintext(HttpServletResponse response) {
    response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");
    return "TEXT";
}
于 2012-03-14T22:11:25.843 回答
10

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

于 2012-01-21T08:11:31.053 回答