我对正确创建 Spring MVC 项目有疑问。
当我运行一个导入的项目时(例如,可从 STS 仪表板下载的 Spring MVC Showcase 示例),在浏览器 URL 栏中,该项目的 URL 如下:
http://localhost:8080/project-name/
(例如,Web MVC Showcase 示例具有项目名称:“spring-mvc-showcase”并具有以下 URL:
http://localhost:8080/spring-mvc-showcase/ )
现在,我的疑问与在 STS\Eclipse 中使用 Spring Template 创建一个新的 Spring MVC 项目有关。
我在 STS 中执行以下操作:
文件 --> 新建 --> 项目,在我看来是一个向导,我可以在其中选择项目类型。
所以我选择了Spring Template Project,现在出现在我的另一个向导窗口中,我可以在其中选择 Spring Project 的特定类型,我选择了“Spring MVC Project”
好的,现在在我看来,我必须在其中设置另一个向导窗口:
项目名称和我插入:my-spring-project
顶级包,我有插入:org.mycompany.foo
好的,现在我在服务器上运行我的项目,这不运行并且在浏览器的 URL 栏中我没有
http://localhost:8080/my-spring-project/ (as I would expect)
但是我有:
http://localhost:8080/foo/
在堆栈跟踪中,我有以下错误消息:
警告:org.springframework.web.servlet.PageNotFound - 在 DispatcherServlet 中找不到带有 URI [/foo/] 的 HTTP 请求的映射,名称为“appServlet”
然后,如果我清理我的项目,STS 重建项目,如果我尝试再次运行它,项目运行良好并且 URL 地址仍然存在:
http://localhost:8080/foo/
我认为这是一种奇怪的行为,我不知道这是什么原因......
所以:
1)为什么网址不是
http://localhost:8080/my-spring-project/
?
2) 为什么我必须清理并重建我的项目才能运行它?
3) 我在创建标准 Spring MVC 项目时出错了?