我想創建一個使用Angularjs爲UI的應用程序,包括模塊化的角度路由,然後調用Spring MVC來調用DAO來執行一些基本的CRUD。麻煩是讓兩個人同時工作。到目前爲止,我所做的一切都導致其中一個或另一個達到404.Angularjs的Spring MVC,正確處理角度路由頁面
我可能是錯的,但我認爲問題紮根於web.xml,尤其是url模式。例如,如果我成立了映射像這樣:
<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-pattern>
,當然我的servlet不能被調用。但是,如果我改變了上面:
<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>
。這也失敗--給出了404,並且即使在@RequestMapping值的末尾添加「.do」,也不會調用 控制器方法。
我讀過幾個其他的問題,關於從<url-pattern>
排除特定的東西,即任何帶「#!」的東西。在其中,但答案都說這個 是不可能的。我還簡單地嘗試了一種無所事事的方法,並且它從未被調用過(我懷疑它不起作用,但值得一試。)
我該如何解決這個問題?
答案在這裏:http://forum.spring.io/forum/spring-projects/web/112412-spring-3-1-enablewebmvc-setting-alwaysusefullpath-property,通過這個問題和答案得出:https://stackoverflow.com/q/11692837/241291。隨意關閉重複。 – cobaltduck