造成javax.servlet.ServletException: Could not resolve view with name的各种原因及解决方法

待我称王封你为后i 2022-05-16 20:20 666阅读 0赞

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxMzg0NTUx_size_16_color_FFFFFF_t_70

报错完成信息:

  1. javax.servlet.ServletException: Could not resolve view with name '/lose/index' in servlet with name 'SpringMVC'

注:蓝色部分根据你的实际情况而定

不管什么原因:都是因为spring找不到解析的视图文件了

造成原因如下:

  1. IDEA默认设置WebRoot目录错误导致
  2. 打包war发布文件路径问题造成
  3. spring mvc解析视图路径问题
  4. 控制器代码返回视图的路径是否正确

解决方法如下,对应上面1 2 3 4点原因

  1. IDEA默认设置WebRoot目录错误导致

这个原因很好解决,只是针对IDEA使用用户或者其他编辑工具使用用户

如图:

70

70 1

这样就OK了

  1. 打包war发布文件路径问题造成

这个原因有点坑了,不仔细去观察查找根本就不容易发现,这样就导致很多人在本地运行tomcat没问题,一打包war部署到服务器就报错找不到视图

如图:

70 2

这是打包的war包,但是一运行起来我们看视图文件去哪儿了

70 3

而是给我生成到classes文件夹下去了(admin和lose都是我的view文件夹)

70 4

好了,看到是这样导致的,那我们就可以吧这两个文件夹复制出来到WEB-INF下的view文件夹下了,就解决了问题

70 5

  1. spring mvc解析视图路径问题

spring mvc视图解析路径要确认正确,写错了路径会找不到视图,就会报错(注:我用的不是jsp视图模板,而是beetl,类似)

  1. <bean id="beetlConfig" class="org.beetl.ext.spring.BeetlGroupUtilConfiguration" init-method="init">
  2. <property name="root" value="/WEB-INF/view"/>
  3. </bean>
  4. <bean id="viewResolver" class="org.beetl.ext.spring.BeetlSpringViewResolver">
  5. <property name="contentType" value="text/html;charset=UTF-8"/>
  6. <property name="suffix" value=".html"/>
  7. </bean>
  1. 控制器代码返回视图的路径是否正确

检查返回视图路径是否正确,并且不加第3点配置的视图后缀

  1. @Controller
  2. @RequestMapping("/admin/")
  3. public class AdminController {
  4. @RequestMapping("index")
  5. String index(){
  6. return "/admin/index";//此处路径是否正确?而且要结合第3点的配置来写
  7. }
  8. }

发表评论

表情:
评论列表 (有 0 条评论,666人围观)

还没有评论,来说两句吧...

相关阅读