2009-09-09 11 views
7

Ho appena iniziato con Spring Web MVC. Sto cercando di evitare estensioni di file nell'URL. Come posso fare questo? (Sto usando 2.5.x Spring)Spring MVC; evitando l'estensione del file in url?

Bean:

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

voglio che sia:

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

non riesco a farlo funzionare. Qualche idea?

Edit:

URL mapping

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

Ho provato a cambiare l'url-pattern senza fortuna (* e/*).

+0

Hai ricevuto una risposta a questa domanda? Sto usando la molla 3.2 – Konza

risposta

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> 

Quindi è necessario registrare i propri url per essere gestiti da un particolare controller. Vedere il seguente

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

+0

Grazie, vedrò quello. Sto usando Spring 2.5.x, ma credo che sia lo stesso. http://static.springsource.org/spring/docs/2.5.x/reference/mvc.html – Ezombort

+3

Perché questa è la risposta accettata? Non funziona. – rustyx

+0

Controlla le risposte di seguito - '/' funziona correttamente. –

1

Hai provato <url-pattern>/*</url-pattern> nella mappatura servlet e <bean name="/hello" .../>?

+0

ho appena provato *, proverò/* ora. Grazie – Ezombort

+0

Non sembra funzionare. – Ezombort

2

provare per primo:

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

Se questo non funziona allora il problema è da qualche altra parte. Il tuo Apache è impostato per inoltrare questi URL a Tomcat? Qualcosa di simile:

JkMount /hello worker1 
+0

Ha funzionato, grazie. Hai idea di come i modelli di url generali non funzionino? – Ezombort

8

Per quanto ne so, non si può fare questo se si sta utilizzando il tuo punto di vista di JSP per i controllori.

Perché quando si passa un modello a un JSP, Spring MVC esegue internamente un 'inoltro' all'URL del JSP. Se si utilizza <url-pattern>/*</url-pattern>, questo inoltro verrà gestito anche da DispatcherServlet e non dalla vista JSP.

Che cosa si può fare è utilizzare <url-pattern>/something</url-pattern> e avere il vostro JSP di in una directory diversa

+0

Grazie, questo ha spiegato molto. – Ezombort

9

In 3.0,/sembra funzionare. Questo è ...

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

In primavera 3.2, almeno, la risposta sopra riportata è molto vicina ma non del tutto necessaria. Il bit web.xml di seguito solo ha funzionato per me, e sto aggiungendolo al thread qui per riferimento di chi googles questa prossima ...

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