在DispatcherServlet中找不到带有URI 的HTTP请求的映射,名称为’appServlet’

我绝对是Java和Spring的新手,我想从例子中学习。

我正在使用开箱即用的配置/安装

  • Mac OSX
  • Springsource Tool Suite作为IDE
  • Spring 2.8.1.RELEASE
  • 的vFabric-TC-服务器开发人员2.6.1.RELEASE

我试图基于“Spring Template Project”生成一个新项目。 然后我选择了“Spring MVC Project”。 生成示例项目。 之后,在没有修改任何内容的情况下,我尝试通过“Run As”执行de“home.jsp”页面。 Web服务器启动,最后我在控制台选项卡中收到错误。

在DispatcherServlet中找不到带有URI [/ myproject /]的HTTP请求的映射,名称为“appServlet”

这些网页中的其他输出:

  • http://localhost:8080/myproject/WEB-INF/views/home.jsp
  • http://localhost:8080/myproject

在此处输入图像描述

在这里,您可以看到有关我的项目结构的图像(为STS自动生成):

在此处输入图像描述

怎么了?

在这里,您可以看到web.xml文件的内容:

     contextConfigLocation /WEB-INF/spring/root-context.xml    org.springframework.web.context.ContextLoaderListener    appServlet org.springframework.web.servlet.DispatcherServlet  contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml  1   appServlet /   

root-context.xml文件具有此内容。

     

最后servlet-context.xml有这个内容。

               

有人有想法解决它吗?

Spring的约定是假设DispatcherServlet的web.xml中的匹配Spring servlet上下文XML文件的开头。 将servlet-context.xml重命名为appServlet-context.xml ,看看是否有帮助。

WEB-INF下的所有内容都无法从外部访问,MVC框架的目的是在调度到视图之前调用控制器,因此无论如何都不应该直接调用JSP。

而且你可能没有任何Spring控制器映射到根URL,所以很明显,URL http://localhost:8080/myproject/

将Controller添加到应用程序,该应用程序返回名为“home”的ModelAndView实例。 然后配置一些处理程序映射到该Controller并尝试使用类似于此URL的URL访问您的Web应用程序: http://localhost:8080/myproject/home.do 可在此处和此处找到更多信息。