我想在页面上显示简单文字,因此我希望将Content-Type
作为text/plain
返回。
使用下面的代码,我在页面上看到纯文本,但返回Content-Type
仍为text/html
。
我该如何解决这个问题?
注意:我正在使用Tiles和Spring MVC。返回的“m.health”指向一个tile def,它映射到一个health.jsp,它只包含下面的1行。
更新注意:我无法控制HTTP标头请求中的Content-Type
或Accept
值。无论发出什么样的请求,我希望我的回复都会返回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:
$ {状态}
答案 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。