2013-05-08 61 views
0

由于Spring MVC 3通过注释处理请求。 @RequestMapping(value = "/welcome")处理未知请求

我的应用程序URL是https://localhost:9452/clientapp/welcome.htm

这个网址打开了欢迎页面。

我的web.xml文件是:

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

如何处理/赶上没有welcome.htm这一请求。

https://localhost:9452/clientapp/ 

我试图用这个,但徒劳

@RequestMapping(value = { "/*.htm", "/**/*.htm", "/*", "/**/*" }) 

回答

1

其中的一个原因是,你设置你的春天调度servlet来处理在你的servlet只有“热媒”和“。做”映射。

Spring MVC在servlet API的基础上工作,并使Spring控制器向某些url发送请求,这些请求首先应该由调度程序servlet提供。

尝试使用:

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

在web.xml

+0

这将停止加载我的资源,如图像和CSS文件。 – 2013-05-08 07:09:25

+0

那么,这可能是因为你没有完全配置你的调度程序servlet上下文。由于调度程序servlet将处理所有请求,因此您需要告诉它在哪里查找资源。看到拉尔夫的答案在这里:http://stackoverflow.com/questions/8195213/spring-3-mvc-resources-and-tag-mvcresources,例如如何做到这一点。 – 2013-05-08 08:47:33

+0

我不确定调度员servlet是否允许从WEB-INF加载资源,所以,为了测试概念,我建议你做以下几点:(1)验证你的图像是否在“{appname.war} /images/imagename.png“,(2)将”“添加到您的调度程序servlet上下文中,(3)运行您的战争并尝试获取它带有像http:// {host}/{appname} /resources/imagename.png这样的网址。如果这能解决问题 - 你应该有一个起点,以你想要的方式改进你的配置。 – 2013-05-08 10:25:43