Ho un progetto di Primavera (4.1.6.RELEASE) MVC con un controller che viene mappato a /home
, ma il mio problema è che è anche invocato per i percorsi come /home.html
o /home.do
Come configurare Spring MVC DispatcherServlet per evitare url con estensioni?
La mia configurazione è:
web.xml:
<servlet>
<servlet-name>main</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
main-servlet.xml:
<mvc:annotation-driven />
<mvc:resources mapping="/resources/**" location="/resources/" />
<!-- ... -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
HomeController.java:
@Controller
@RequestMapping({"/", "/home"})
public class HomeController {
@RequestMapping(method = RequestMethod.GET)
public String doGet(Model model) {
// ...
return "home";
}
}
Come suggerito in questioni simili:
- Spring MVC; avoiding file extension in url?
- Spring MVC: Avoiding file extension in URL
- spring mvc how to bypass DispatcherServlet for *.html files?
Ho provato ad aggiungere le seguenti configurazioni:
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="useDefaultSuffixPattern" value="false" />
</bean>
e
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="useSuffixPatternMatch" value="false" />
<property name="useRegisteredSuffixPatternMatch" value="false" />
</bean>
ma senza successo.
Quando il debug del DispatcherServlet
posso vedere che le istanze di RequestMappingHandlerMapping
e DefaultAnnotationHandlerMapping
non hanno impostare le proprietà di cui sopra commentato a false
.
Sembra che una semplice configurazione dovrebbe farlo, ma mi manca qualcosa che io sono in grado di scoprire.
Come devo configurare correttamente il DispatcherServlet
per evitare estensioni di file nei percorsi mappati?
Grazie in anticipo.
Sì, hai ragione. Ha funzionato!Se potessi anche fornire il link ai documenti Sarebbe perfetto. –
cosa certa, collegato sapere –