I want to display simple text on a page and as such I want to return the Content-Type as text/plain.
Using the code below, I see plain text on the page, however the return Content-Type is still text/html.
How can I fix this?
NOTE: I'm using Tiles with Spring MVC. The returned "m.health" points to a tiles def that maps to a health.jsp which only contains the 1 line below.
UPDATE NOTE: I have no control over the Content-Type or Accept values in the HTTP Header request. I want my response to return text/plain no matter what kind of request comes in.
Controller:
@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:
${status}
It should work if you annotate your method additionally with @ResponseBody:
@RequestMapping(value = "/", method = RequestMethod.GET) @ResponseBody public String plaintext(HttpServletResponse response) { response.setContentType("text/plain"); response.setCharacterEncoding("UTF-8"); return "TEXT"; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With