2009-09-09 5 views
7

Je viens de commencer avec Spring Web MVC. J'essaie d'éviter les extensions de fichiers dans l'URL. Comment puis-je faire ceci? (J'utilise 2.5.x Spring)Ressort MVC; éviter l'extension de fichier dans l'URL?

Bean:

<bean name="/hello.htm" class="springapp.web.HelloController"/> 

Je veux que ce soit:

<bean name="/hello" class="springapp.web.HelloController"/> 

Je ne peux pas le faire fonctionner. Des idées?

Edit:

Url-mapping

<servlet-mapping> 
    <servlet-name>springapp</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
</servlet-mapping> 

J'ai essayé de changer le modèle d'URL sans chance (* et/*).

+0

Avez-vous obtenu une réponse à cette question? J'utilise le printemps 3.2 – Konza

Répondre

6
<servlet> 
    <servlet-name>spring-mvc</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>spring-mvc</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

Vous devez ensuite enregistrer vos URL pour qu'elles soient gérées par un contrôleur particulier. Voir la

suivante

http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html

+0

Merci, je vais y jeter un coup d'oeil. J'utilise Spring 2.5.x, mais je suppose que c'est pareil. http://static.springsource.org/spring/docs/2.5.x/reference/mvc.html – Ezombort

+3

Pourquoi est-ce la réponse acceptée? Ça ne marche pas. – rustyx

+0

Vérifiez les réponses ci-dessous - '/' fonctionne très bien. –

1

Avez-vous essayé <url-pattern>/*</url-pattern> dans le mappage de servlet et <bean name="/hello" .../>?

+0

Je viens d'essayer *, je vais essayer/* maintenant. Merci – Ezombort

+0

Ne semble pas fonctionner. – Ezombort

2

Essayez d'abord:

<servlet-mapping> 
     <servlet-name>spring-mvc</servlet-name> 
     <url-pattern>/hello</url-pattern> 
</servlet-mapping> 

Si cela ne fonctionne pas alors problème est ailleurs. Est-ce que votre Apache est configuré pour transmettre ces URL à Tomcat? Quelque chose comme:

JkMount /hello worker1 
+0

Cela a fonctionné, merci. Avez-vous des idèas pourquoi les modèles d'url généraux ne fonctionneront pas? – Ezombort

8

Autant que je sache, vous ne pouvez pas faire cela si vous utilisez JSP comme vue pour les contrôleurs. Parce que lorsque vous passez un modèle à un JSP, Spring MVC effectue en interne un «forward» vers l'URL de la JSP. Si vous utilisez <url-pattern>/*</url-pattern>, ce transfert sera également géré par votre DispatcherServlet et non par votre vue JSP.

Ce que vous pouvez faire est d'utiliser <url-pattern>/something</url-pattern> et votre JSP dans un répertoire différent

+0

Merci, cela a beaucoup expliqué. – Ezombort

9

Dans la version 3.0,/semble fonctionner. C'est ...

<url-pattern>/</url-pattern> 
4

Au printemps 3.2 au moins, la réponse acceptée ci-dessus est très proche mais pas tout à fait ce qui est nécessaire. Le bit web.xml ci-dessous juste travaillé pour moi, et je l'ajouter au fil ici pour référence de celui qui googles cette prochaine ...

<servlet-mapping> 
    <servlet-name>springmvc</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
Questions connexes