モジュール化のための角度経路を含むUIのAngularjsを使用してアプリケーションを作成しようとしています。次に、Spring MVCを呼び出してDAOを呼び出して基本的なCRUD。問題は、両方同時に働くようになっています。これまでのところ私がしていることは、どちらか一方が404になる原因となります。Angularjsを使用したSpring MVC、角度経路ページの適切な処理
私は間違っているかもしれませんが、問題はweb.xml、特にurl-patternに根ざしていると思います。例えば、場合、私はそうのようなマッピングを設定:
<servlet-mapping>
<servlet-name>MyApp</servlet-name>
<url-pattern>/obviousJunk</url-pattern>
</servlet-mapping>
は、次にアプリケーションを実行するには、私は私のhtmlページをプレビューし、すべての私の
<div>
sおよび
<table>
sおよび
<img>
sがすべてきれいに見えるかを確認することができます。これらのページには、形式が
http://localhost:8080/MyApp/#!/homeまたは
http://localhost:8080/MyApp/#!/categoryList などのURLがあります。つまり、すべてが角経路「#!」を持ちます。パターン。
この<url-pattern>
では、もちろん私のサーブレットを呼び出すことはできません。私は上記を変更する場合は、:
<servlet-mapping>
<servlet-name>MyApp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
そしてその後、私は正常にこの方法で実行することができ、http://localhost:8080/MyApp/services/category/listを打つ:「!#」で
@RequestMapping(value="/services/category/list", method=RequestMethod.GET)
public @ResponseBody String listCategory() {
return "Hello, World";
// TODO: modify this method to make a DAO call and return a list of categories
}
しかし、私のすべてのページを404に突然行く。コントローラメソッドがないので、それらを提供することができない。
私は
(上記のように)私は、「/サービス/」を持つすべてのサービスコールのURLを前置き場合、私はように(とと*なし)私のweb.xmlを変更することができるかもしれないと思いました<servlet-mapping>
<servlet-name>MyApp</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
同様に、@RequestMappingアノテーションを変更して、 "/ services"部分をインクルードして削除しました。いいえ - ページをもう一度見ることができますが、サービスは404を呼び出します。コントローラーメソッドは呼び出されません。また、サービスメソッド呼び出しの最後に ".do"を追加し、上記を作成する例をいくつか挙げました<url-pattern>*.do</url-pattern>
。 @RequestMapping値の最後に ".do"を追加した場合でも、これも失敗します。http://localhost:8080/MyApp/services/category/list.doは404を返し、 コントローラメソッドは呼び出されません。
具体的なものを<url-pattern>
から除外することについてもう1つ質問しました。それは答えがすべて であると言うことはできません。私はまた、@RequestMapping(value="/#!/**")
で簡単に何もしない方法を試みましたが、決して呼び出されませんでした(私はうまくいきませんでしたが、試してみる価値がありました)。
どうすれば解決できますか?
答えはここにあります:http://forum.spring.io/forum/spring-projects/web/112412-spring-3-1-enablewebmvc-setting-alwaysusefullpath-property、この質問とその回答を介して到着しました:https://stackoverflow.com/q/11692837/241291気をつけて複製してください。 – cobaltduck