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 перечисляет это как образец.