在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
可在此处和此处找到更多信息。