Je souhaite utiliser l'intégration Spring-Tiles. Here vous pouvez voir à quoi ressemble mon application. Donc, ma question est la suivante: pourquoi le servlet Dispatcher Spring-MVC ne peut-il pas résoudre ma page cible ???Tiles 2 et aucune correspondance trouvée pour la requête HTTP avec URI - Spring-MVC
Répondre
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.
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>
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:
@Arthur: Toute demande aux contrôleurs Spring MVC vont throgh le DispatcherServlet. – axtavt