2

レガシー システムと、削除したい URL 書き換えルールがあります。変更するルールの 1 つは /tools/lookup.html?what=this で、これを /tools/search?what=this に変更すると、実際には html ではなく json が返されます。

@Controller でレガシー形式の lookup.html をサポートする方法を見つけようとしていますが、HTTP 406 で失敗します。 「ヘッダー」を受け入れます。誰かが似たようなことをしたのだろうか?

私のコントローラメソッドは次のようになります:

@RequestMapping(value = "/tools/lookup.html", method = RequestMethod.GET)
public @ResponseBody Result lookup() {
    return result;
}

前もってありがとうシルヴァン

4

4 に答える 4

0

こんにちは、最終的に私の場合にうまくいくはずのものを見つけました。私のアプリは実際の html (REST のみのアプリ) をサポートする必要がないことに注意してください。私の WebMvcConfigurerAdapter では、次の html のメディア タイプを追加しました。

@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
    configurer.mediaType("html",MediaType.APPLICATION_JSON);
    configurer.mediaType("html",MediaType.APPLICATION_XML);
    super.configureContentNegotiation(configurer);
}

これで、JSON または XML コンテンツがクライアントに返されます。406 エラーはなくなりました。

于 2013-04-12T21:37:26.317 に答える