web.xml中的Spring MVC URL模式映射?

时间:2014-03-24 13:21:59

标签: java spring spring-mvc

我在web.xml中有以下配置

<servlet>  
        <servlet-name>mvc-dispatcher</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/mvc-dispatcher-servlet.xml</param-value>
         </init-param>  
        <load-on-startup>1</load-on-startup>  
    </servlet>

    <servlet-mapping>  
        <servlet-name>mvc-dispatcher</servlet-name>  
        <url-pattern>*.do</url-pattern>  
    </servlet-mapping>

我有控制器如下。

@Controller  
public class SomeController { 

   @RequestMapping("/somePath")
    public String showExtendedUi() {
        return "somePage";
    }


}  

现在客户端会通过将url params发送为belo来调用控制器:

http://localhost:8080/myApp/somePath?param1=456&param2=456

但是没有调用控制器方法。

我的网址是否正确?

2 个答案:

答案 0 :(得分:6)

由于您已将mvc-dispatcher映射到*.do,因此未调用您的控制器方法 将servlet映射更改为

<servlet-mapping>  
        <servlet-name>mvc-dispatcher</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping>

答案 1 :(得分:2)

由于Dispatcher Servlet的URL模式配置为* .do,控制器只能通过模式&#34; something.do&#34;的url请求来调用。

所以,如果所有其他配置都正确,您的网址http://localhost:8080/myApp/somePath.do?param1=456&param2=456将会正常工作。