2010-06-04 25 views

Répondre

4

Le problème est que vous utilisez <url-pattern>/*</url-pattern> dans le mappage de servlet, donc toutes les demandes sont traitées par DispatcherServlet, y compris la demande aux tuiles *.jsp. Le moyen le plus polyvalent pour le résoudre (mais pour garder des URL reposantes sans préfixes) est de use a UrlRewriteFilter.

+0

@Arthur: Toute demande aux contrôleurs Spring MVC vont throgh le DispatcherServlet. – axtavt

1

C'est un problème courant avec Spring et cela est dû au fait que la vue (jsp) passe par DispatcherServlet.

Essayez de modifier votre web.xml en utilisant

<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> 

puis ajoutez à votre urlrewrite.xml quelque chose comme:

<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> 

Je suppose que vous utilisez UrlRewrite , si vous n'importez pas le fichier jar et ajoutez le mappage de filtre dans votre fichier web.xml, par exemple:

<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> 
2

Je pense qu'il vous manque un ViewResolver critique. J'ai vérifié le poste que vous avez mentionné dans SpringSource mais je ne l'ai pas vu la ViewResolver suivante:

org.springframework.web.servlet.view.tiles2.TilesViewResolver 

Essayez d'ajouter que ViewResolver et voir si cela pouvait aider. J'utilise aussi Spring et Tiles. Je dois juste déclarer cela et le TilesConfigurer.

Découvrez ces références: