2

通常のSpringMVCコントローラーを使用し、パス変数を使用してマッピングを要求したいと思います。

転送やリダイレクトはしたくありません。ユーザーに表示される文字列を変更するだけです。

@RequestMapping(value = "/Foo/{id}/*", method = RequestMethod.GET)
public ModelAndView getFoo(@PathVariable final String friendlyUrl) {
//how can I rewite the url that user sees ?
}

(stackoverflowで既存の質問のタイトルを変更した場合と同じ動作)

4

1 に答える 1

1

Wireshark や firebug などでトラフィックを監視すると、stackoverflow は HTTP 301 Moved Permanently を最終 URL に送信します。同じことができます。

これには が必要ですHttpServletResponse。それをメソッド シグネチャに追加して、注入することができます。永続的なリダイレクトを設定します。

String rightUrl = urlCompleter.complete(friendlyUrl);
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location", rightUrl);

urlCompleter自分で実装する必要がある場合、たとえば。エントリのデータベース テーブルを調べて、正しい URL コンポーネントを見つけます。

于 2012-12-29T12:21:31.780 に答える