2009-09-09 9 views
7

Ich habe gerade mit Spring Web MVC gestartet. Ich versuche, Dateierweiterungen in der URL zu vermeiden. Wie kann ich das machen? (Ich bin mit Spring 2.5.x)Feder MVC; Dateierweiterung in URL vermeiden?

Bean:

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

Ich will es sein:

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

Ich kann es nicht bekommen zu arbeiten. Irgendwelche Ideen?

Edit:

URL-Mapping

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

ich versucht habe, ohne Glück die URL-Muster zu ändern (* und/*).

+0

Haben Sie eine Antwort auf diese Frage erhalten? Ich benutze Frühling 3.2 – Konza

Antwort

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> 

Dann müssen Sie Ihre URLs registrieren, um von einem bestimmten Controller behandelt zu werden. Siehe folgende

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

+0

Danke, ich schaue mir das an. Ich benutze Spring 2.5.x, aber ich denke, es ist ziemlich dasselbe. http://static.springsource.org/spring/docs/2.5.x/reference/mvc.html – Ezombort

+3

Warum ist das die akzeptierte Antwort? Es funktioniert nicht. – rustyx

+0

Überprüfen Sie Antworten unten - '/' funktioniert gut. –

1

Haben Sie versucht <url-pattern>/*</url-pattern> in der Servlet-Zuordnung und <bean name="/hello" .../>?

+0

Ich habe gerade versucht *, ich werde versuchen/* jetzt. Danke – Ezombort

+0

Scheint nicht zu funktionieren. – Ezombort

2

Versuchen Sie zuerst:

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

Wenn das nicht dann Problem woanders funktioniert ist. Ist Ihr Apache eingerichtet, diese URLs an Tomcat weiterzuleiten? Etwas wie:

JkMount /hello worker1 
+0

Das hat funktioniert, danke. Hast du irgendwelche Idéas, warum die allgemeinen URL-Muster nicht funktionieren? – Ezombort

8

Soweit ich weiß, können Sie dies nicht tun, wenn Sie JSPs als Ihre Ansicht für Controller verwenden.

Wenn Sie ein Modell an eine JSP übergeben, führt Spring MVC intern eine Weiterleitung an die URL der JSP durch. Wenn Sie <url-pattern>/*</url-pattern> verwenden, wird diese Weiterleitung auch von Ihrem DispatcherServlet und nicht von Ihrer JSP-Ansicht verarbeitet.

Was Sie tun können, ist <url-pattern>/something</url-pattern> zu verwenden und Ihre JSP in einem anderen Verzeichnis

+0

Danke, das hat viel erklärt. – Ezombort

9

In 3.0/zu funktionieren scheint. Das ist ...

4

Im Frühjahr 3.2 zumindest, die angenommene Antwort oben ist fast, aber nicht ganz, was benötigt wird. Das web.xml-Bit unterhalb funktioniert nur für mich, und ich bin es zum Thread hier für die Referenz der wer googelt diese nächste ...