0

私の春の mvc コンテキストでは、次のマッピングがあります (他にもたくさんありますが、これで一般的なアイデアが得られます)。 <mvc:view-controller path="/echo" view-name="echo"/>

<context:component-scan base-package="com.myapp.controllers"/>

私が直面している問題は、注釈付きのコントローラーがあること@RequestMapping(value = "/e{number}"です。@PathVariableリクエストマッピングと同じコントローラーで、整数でない 場合、ユーザーを「ホーム」にダンプするリダイレクトがあります。

ただし、パス/エコーと一致している場合、それらをホームにダンプしたくありません。ビューの解決に設定しようとし<property name="order" value="0" />ましたが、コンテキストの順序がなくても優先されます。

コンポーネント スキャンの優先順位を設定するにはどうすればよいですか。または、ビュー リゾルバーをアノテーション付きコントローラーの前に最初に一致させるにはどうすればよいですか。

4

1 に答える 1

1

コントローラーの前にビュー リゾルバーを配置することは、(それが可能であれば) ひど​​いアイデアのように思えます。特に、UrlBasedViewResolver (または何か) とサブクラスは、チェーンを通過するのではなく、一致が見つからない場合に例外をスローするためです。パス変数が整数の場合にのみコントローラーを介入させたい場合は、RequestMapping のパターン マッチング オプションを使用する必要があります。たとえば、/e{number:\d+}Google 検索の正しい方向に導く必要があります。

于 2013-08-28T16:01:11.390 に答える