我对 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 模板创建新的 Spring MVC 项目有关。
我在STS中做了以下操作:
文件 --> 新建 --> 项目 在我看来,这是一个向导,我可以在其中选择项目类型。
所以我选择了Spring模板项目,现在我看到了另一个向导窗口,我可以在其中选择Spring项目的特定类型,并且我选择了“Spring MVC项目”
好的,现在我看到另一个向导窗口,我必须在其中进行设置:
项目名称,我插入:my-spring-project
顶级包,我插入了:org.mycompany.foo
好的,现在我在服务器上运行我的项目,这不会运行,并且在浏览器的 URL 栏中我没有运行
http://localhost:8080/my-spring-project/ (as I would expect)
但我有:
http://localhost:8080/foo/
在堆栈跟踪中,我有以下错误消息:
WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/foo/] in DispatcherServlet with name 'appServlet'
然后,如果我清理了我的项目,STS 会重建该项目,如果我尝试再次运行它,项目运行良好并且 URL 地址仍然保留:
http://localhost:8080/foo/
我认为这是一种奇怪的行为,我不知道其原因是什么......
所以:
1) 为什么 URL 不是
http://localhost:8080/my-spring-project/
?
2)为什么我必须清理并重建我的项目才能运行它?
3)我在创建标准 Spring MVC 项目时犯了一些错误?
最佳答案
Eclipse > 属性 > Web 项目设置:设置为上下文根 my-spring-project
然后像在 Eclipse 中正常运行一样运行该项目。它应该以 http://localhost:8080/my-spring-project/
开头。还可以像展示项目那样进行映射:<mvc:view-controller path="/" view-name="home"/>
关于java - 使用 STS 模板项目创建新的 Spring MVC 项目时出现奇怪的行为,URL 不正确,我必须重建项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13682656/