2011-02-03 6 views
0

私はSpring MVCアプリケーションを持っています。リソースが特定のメディアタイプをサポートしていないときを判断する方法が必要です。私はカスタムView Resolversでこれを行うことを考えていました...ビューリゾルバのどれもビュー名の一致が見つからない場合、サポートされていないメディアタイプ(HTTPコード406)をトリガーする例外をスローします。Springでサポートされていないメディアタイプを判断するのに理想的なのはどこですか?

ほとんどのビューリゾルバは、指定されたビュー名を解決できない場合は、nullを返します。この問題は、特定のビュー名が存在しない場合でも、常にビューを返すInternalResourceViewResolverのようなビューリゾルバで発生します。

@RequestMapping(value = "/viewTest", method = RequestMethod.GET) 
public ModelAndView getViewData() { 

    Map<String, Object> myModel = new HashMap<String, Object>(); 
    myModel.put("rightNow", (new Date()).toString()); 

    return new ModelAndView("foo", "model", myModel); 
} 

感謝:ちょうど参照として

は、ここに私のコントローラがどのように見えるかです!

答えて

1

ContentNegotiatingViewResolverでほとんどの情報を得ることができますが、特定のビューテンプレートがない場合には、別の方法で動作させる場合は、InternalResourceViewResolverを拡張する必要があるようです。

0

@RequestHeaderアノテーションを使用して、メソッドでサポートされているメディアタイプを定義することもできます。

+0

'@ RequestHeader'は、コントローラメソッドの引数をHTTPヘッダーにバインドするために使用されます。この注釈では、サポートされるメディアタイプを制御することはできません。あなたが意味していたのは '@RequestMapping(...、produce = MediaType.APPLICATION_JSON_VALUE)'です。 –

関連する問題