Spring MVC 3 Return Content-Type: text/plain
Я хочу отобразить простой текст на странице и как таковой я хочу вернуть Content-Type
как text/plain
.
Используя приведенный ниже код, я вижу обычный текст на странице, однако return Content-Type
все еще text/html
.
Как я могу это исправить?
ПРИМЕЧАНИЕ. Я использую Tiles с Spring MVC. Возвращаемое "m.health" указывает на определение тайлов, которое отображается в файле health.jsp, который содержит только одну строку ниже.
ОБНОВЛЕНИЕ ПРИМЕЧАНИЕ: у меня нет контроля над значениями Content-Type
или Accept
в запросе заголовка HTTP. Я хочу, чтобы мой ответ возвратил 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:
${состояния}
Ответы
Ответ 1
Он должен работать, если вы дополнительно аннотируете свой метод с помощью @ResponseBody:
@RequestMapping(value = "/",
method = RequestMethod.GET)
@ResponseBody
public String plaintext(HttpServletResponse response) {
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
return "TEXT";
}
Ответ 2
Вы можете попробовать установить produces
значение вашей аннотации @RequestMapping
на text/plain
. Документация Spring перечисляет это как образец.