我在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¶m2=456
但是没有调用控制器方法。
我的网址是否正确?
答案 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¶m2=456
将会正常工作。