第二章:SpringBoot使用JSP

springboot内部对jsp的支持并不是特别理想,而springboot推荐的视图是Thymeleaf,对于java开发人员来说还是大多数人员喜欢使用jsp,接下来我们来讲解下springboot是如何支持jsp的。

这里注意一点的是,如果我们选择了war形式,也添加了Web依赖并且在开发过程中使用Application形式启动,则需要注释pom.xml配置文件内tomcat依赖的scope属性。

可以看到上图中比我们lessonOne项目中多出来了一个类文件,ServletInitlalizer,打开该类我们不难发现它继承了SpringBootServletInitializer这个父类,而SpringBootServletInitializer这个类是springboot提供的web程序初始化的入口,当我们使用外部容器(后期文章讲解使用外部tomcat如何运行项目)运行项目时会自动加载并且装配。
实现了SpringBootServletInitializer的子类需要重写一个configure方法,方法内自动根据LessontwoApplication.class的类型创建一个SpringApplicationBuilder交付给springboot框架来完成初始化运行配置。

配置springboot支持jsp

我们打开pom.xml可以看到我们之前构建项目时已经添加了web模块,springboot给我们自动添加了spring-boot-starter-tomcat配置引入。springboot内部集成了tomcat组件,这里我们就不需要重复引入tomcat组件。

添加依赖

1.添加jsp的maven支持

2.添加jsp对servlet容器的maven支持

3.添加jstl的maven支持

<!--1.添加jsp的maven支持 -->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--2.jsp对servlet容器的maven支持-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
</dependency>
<!--3.jstl的maven支持 (javascript tag lib)-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>

配置jsp视图

如果是使用过eclipse工具的人肯定知道jsp文件之前是在/webapp/WEB-INF/jsp目录下,那么我们也沿用eclipse的风格。
1. 在main目录下创建webapp文件夹
2. 在webapp下创建WEB_INF,在WEB_INF下创建jsp文件夹

3. 修改application.yml文件让springmvc支持视图的跳转目录指向为/main/webapp/jsp

spring:
  mvc:
    view:
      prefix: /WEB-INF/jsp/
      suffix: .jsp

4.在jsp文件夹下新建index.jsp文件

创建视图控制器IndexController

@Controller
public class IndexController {
    @RequestMapping("/index")
    public String index(){
        return "index";
    }
}

@RequestMapping注解来描述index()方法是一个可以被springmvc管理的请求视图。我们的index()方法返回值这里是"index"。
为什么我们返回"index",还记得上述步骤中配置的application.properties文件的springmvc请求前缀(/WEB-INF/jsp/)以及后缀(.jsp),那么当我们访问/index时springmvc就会去找/webapp/WEB-INF/jsp/index.jsp文件。

请求路径:http://localhost:8080/index

转自:https://www.jianshu.com/p/90a84c814d0c

猜你喜欢

转载自blog.csdn.net/qq_30737525/article/details/81480582