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

问题描述 投票:18回答:2

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

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

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

注意:我正在使用带有Spring MVC的Tiles。返回的“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:

$ {}状态

java spring-mvc content-type apache-tiles
2个回答
50
投票

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

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

9
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.