2011-09-13 20 views
2

私は私のweb.xmlに設定するコントローラを持っている:Spring MVCサーブレットマッピングURLでワイルドカードを使用するにはどうすればよいですか?

<servlet> 
    <servlet-name>controller</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>controller</servlet-name> 
    <url-pattern>/console/index</url-pattern> 
</servlet-mapping> 

とコントローラ-servlet.xmlに定義されたマッチング豆:正しく動作

<bean name="/console/index" class="com.package.OverviewController"/> 

- 私が取得するときに "/appName/console/index "これは私が期待するように動作します。私はこれまでのweb.xmlを変更するときしかし:

<servlet> 
    <servlet-name>controller</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>controller</servlet-name> 
    <url-pattern>/console/*</url-pattern> 
</servlet-mapping> 

私に次の例外を与えることはもはや機能し、:

WARN (org.springframework.web.servlet.PageNotFound) - No mapping for [/appName/console/index] in DispatcherServlet with name 'controller' 

だから私の質問はそう、私はサーブレットマッピングでワイルドカードを使用しない方法です異なるURLはすべて単一のDispatcherServletを経由しますが、いくつかのコントローラBeanのいずれかに移動する可能性がありますか?

FYI:政府で使用されている確立されたアプリケーションなので、私はSpring 2.0で立ち往生しています。

答えて

4

<url-pattern>にワイルドカードを使用すると、コントローラ名はデフォルトでパターンのワイルドカード部分に対応します。

コントローラの名前を/indexに変更するか、HandlerMappingalwaysUseFullPathプロパティをtrueに設定することができます。

+0

Awesomesauce、歓声メイト:D – Sophistifunk

関連する問題