起因
在学习SpringBoot整合JSP时,我碰到了404访问不到JSP页面的情况。于是在网上搜索了详细的关于类似问题的解决方案,一下是一些可能遇到的问题。
栗子
一、Application启动类的位置不对
如果Application启动类的位置不对,那么SpringBoot就无论如何都找不到相应的Controller了。
原因是spring-boot只会自动加载启动类所在包下及其子包下的所有组件。
图中的HelloController
是控制器,SpringbootApplication
是启动类,hello.jsp
是控制器对应的JSP文件。
二、application.properties配置错误
一般配置成:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
特殊情况:
如果pom.xml中配置的<artifactId>spring-boot-starter-parent</artifactId>
版本过低,则需要配置成:
spring.view.prefix=/WEB-INF/jsp/
spring.view.suffix=.jsp
注意:对应JSP文件所在的位置必须与application.properties配置的位置相符合。比如栗子中对应JSP
文件的位置应该在src\main\web-app\WEB-INF\jsp\
目录下。
三、控制器的URL路径
- @RequestMapping(“xxxxxxx”)
Controller中的注解RequestMapping中的value值就对应了浏览器访问时映射的网址。 - return “xxxxxxx”;
Controller中返回的String内容,就是对应JSP
文件不加后缀的文件名。此处如果写错,则浏览器会显示例如下图的错误。
- 函数名
博主经过测试,发现函数名与问题没有任何关系,可以随心所欲取自己想取的名字。
错误页面
博主竟然忘记加上页面对应映射的网址。
解决方案
加上正确的网址后,浏览器就正常显示了。