ページに簡単なテキストを表示したいので、Content-Type
をtext/plain
として返したいです。
以下のコードを使用すると、ページにプレーンテキストが表示されますが、戻り値Content-Type
は依然としてtext/html
です。
どうすれば修正できますか?
注:Spring MVCでTilesを使用しています。返される「m.health」は、以下の1行のみを含むhealth.jspにマップされるタイルdefを指します。
更新メモ: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:
$ {status}
メソッドに@ResponseBodyを追加して注釈を付けると機能するはずです。
@RequestMapping(value = "/",
method = RequestMethod.GET)
@ResponseBody
public String plaintext(HttpServletResponse response) {
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
return "TEXT";
}
@RequestMapping
アノテーションを使用してtext/plain
アノテーションのproduces
値を設定してみてください。 Springのドキュメントには、これが sample としてリストされています。