0

Spring MVCの基本を学ぼうとしていますが、コントローラーへのURLの解決方法に問題があります。私はこのチュートリアルを踏み台として使用しています。tomcatで正常に動作させることができ、URL/context/welcome.htmは次のように注釈が付けられたコントローラーに解決されます。

@Controller
@RequestMapping("/welcome")
public class HelloWorldController

web.xmlは、

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>

/ context / welcomeと入力して、HelloWorldControllerを解決できるようにしたいのですが、これは機能しません。*を設定しようとしましたが、これによりサーブレットのロードに失敗します。このURLパターンが無効である理由と、*。htmで終わるリクエストだけでなく、/welcomeや/welcomeなどのすべてのリクエストで機能するようにこのコントローラーを構成する方法を誰かが説明できれば幸いです。ASP.NET MVCでは、このようなコントローラーマッピングの問題をデバッグするためのルーティングページが提供されていました。Springでこれを行うための最良の方法は何ですか?

4

3 に答える 3

5

これを試して :

<servlet-mapping>
   <servlet-name>mvc-dispatcher</servlet-name>
   <url-pattern>/*</url-pattern>
</servlet-mapping>

パターン/*は、すべてをサーブレットに通します。

パターン/は、サーブレットをアプリのデフォルトサーブレットにします。つまり、完全に一致するパターンがないすべてのパターンを取得します。

于 2012-02-05T20:04:44.557 に答える
1

既存のコードでは、サーブレットマッピングで.htmを作成したため、リクエストマッピングをRequestMapping( "/welcome.htm")に変更することで解決できます。私たちのアプリのURLがどうあるべきか、それはすべて私たちの願いです。/を作成する他の提案も機能します。違いは、/ *は、ヒットしたURLのパターンを許可しますが、*。htmは他のパターンからの解決を制限します。

jsとcssはスプリングディスパッチャーサーブレットに依存していないため、jsやcssに問題が発生することはないと思います。jsとcssは、サーブレットを配置しなくても埋め込むことができます。スタンドアロンのhtmlにjsとcssがあると考えてください。必要なのはサーバーのコンテキストであり、サーブレットではありません。

于 2012-02-25T01:55:15.640 に答える
0

/*を使用してみてください

他のパターンは、serlvet仕様で指定された要件を満たしていないため、無効でした:https ://jira.sakaiproject.org/secure/attachment/16135/servlet-2_4-fr-spec.pdf

これを使用する際の問題の1つは、jsファイルとcssファイルのリクエストがディスパッチャーを介してルーティングされることです。これらのファイルのリクエストを無視するには、springを設定する必要があります。

于 2012-02-05T20:09:28.570 に答える