2010-06-04 168 views

回答

4

問題是您在servlet映射中使用<url-pattern>/*</url-pattern>,所以所有請求都由DispatcherServlet處理,包括請求到*.jsp切片。解決這個問題的最通用的方法(但是保持沒有前綴的寧靜的URL)是use a UrlRewriteFilter

+0

@Arthur:所有請求的Spring MVC控制器正在throgh DispatcherServlet的。 – axtavt 2010-06-04 20:55:12

1

這是使用Spring的常見問題,這是由於view(jsp)通過DispatcherServlet的事實。

嘗試使用

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

修改你的web.xml,然後添加到您的urlrewrite.xml是這樣的:

<urlrewrite default-match-type="wildcard"> 
<rule> 
    <from>/</from> 
    <to>/app/</to> 
</rule> 
<rule> 
    <from>/**</from> 
    <to>/app/$1</to> 
</rule> 
<outbound-rule> 
    <from>/app/**</from> 
    <to>/$1</to> 
</outbound-rule> 

我假設你正在使用urlrewrite ,如果你沒有導入jar並在你的web.xml中添加過濾器映射,例如:

<filter> 
    <filter-name>urlRewriteFilter</filter-name> 
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>urlRewriteFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
相關問題