グローバルに設定する方法はなくproduces
、Tomasz が示唆したように、通常はコンテンツ ネゴシエーションを春に任せる方が簡単ですが、機能をインターセプターとして実装することも非常に簡単です。
Accept
基本的に、値としてヘッダーを持たないリクエストでは、415 ステータス コードを返す必要がありapplication/json
ます。
したがって、最初にインターセプターを実装します。
public class WrongAcceptHeaderInterceptor extends HandlerInterceptorAdapter {
public boolean preHandle(
HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
if (!"application/json".equals(request.getHeader("Accept"))) {
//you can change or omit the message
response.sendError(SC_UNSUPPORTED_MEDIA_TYPE, "Your error message");
// return false to skip further processing
return false;
}
}
}
次に、コンテキストに登録します。
<mvc:interceptors>
<bean class="foo.bar.baz.WrongAcceptHeaderInterceptor" />
</mvc:interceptors>