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

 

报错完成信息:

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使用用户或者其他编辑工具使用用户

如图:

造成javax.servlet.ServletException: Could not resolve view with name的各种原因及解决方法_第1张图片

造成javax.servlet.ServletException: Could not resolve view with name的各种原因及解决方法_第2张图片

这样就OK了

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

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

如图:

造成javax.servlet.ServletException: Could not resolve view with name的各种原因及解决方法_第3张图片

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

造成javax.servlet.ServletException: Could not resolve view with name的各种原因及解决方法_第4张图片

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

造成javax.servlet.ServletException: Could not resolve view with name的各种原因及解决方法_第5张图片

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

造成javax.servlet.ServletException: Could not resolve view with name的各种原因及解决方法_第6张图片

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

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


    


	
	

4. 控制器代码返回视图的路径是否正确

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

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

你可能感兴趣的:(Java,Spring)