首先,如果這是重複的,我很抱歉。我做了相當多的搜索,但無法找到多少,我懷疑我沒有使用正確的術語...Spring MVC網址沒有.something extension
我正在用Spring MVC構建一個站點,並使用註釋驅動的配置。我想要做的是在最後沒有任何擴展名的網址(.html,.do等)。所以他們看起來像http://www.mysite.com/account/create
,我知道這是傳統上在Apache上使用mod_rewrite
或使用沒有擴展名的文件完成的事情。看起來好像它可以在不使用重寫引擎(我知道urlrewritefilter項目)的情況下完成,因爲Spring支持從請求字符串中提取參數(參見the documentation的第15.3.2.1節),並且寵物商店示例沒有似乎在其網址末尾有擴展名。
但是,似乎每當我嘗試將所有請求轉發給調度程序servlet(我的想法是否定*.htm
),我遇到了麻煩......我能夠得到它工作(使用XML配置,我最近切換到註釋配置),對所有頁面僅使用標準的「* .htm」。
我的控制器代碼看起來像
@Controller
@RequestMapping("/home")
public class HomeController {
...
@RequestMapping(method = RequestMethod.GET)
public ModelAndView get() {
...
}
而且我的web.xml看起來像
<servlet>
<servlet-name>dispatch</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatch</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
我在這裏失去了一些東西?這可能沒有使用重寫引擎?
我應該注意,上面的配置不起作用。它始終返回一個404
錯誤...
這是一個很好的觀點,也是我沒有想到的。應該像'/ app/*'那樣工作嗎? – 2010-10-15 17:18:32
這樣做,謝謝!對於它的價值,我也在Servlet xml文件中使用了我的' '標記,而不是在上下文配置文件中。 –
2010-10-15 17:49:55