Spring Boot深度课程系列

峰哥说技术—2020庚子年重磅推出、战胜病毒、我们在行动

09  峰哥说技术:Spring Boot整合JSP视图

一般来说我们很少推荐大家在Spring boot中使用jsp作为模板,但是很多的同学可能会想了解,所以峰哥这里也给大家做一个简单的介绍,它不复杂。只是需要我们添加手动添加2个依赖,同时要编写Java配置类,自定义视图解析器。对于jsp的视图需要我们放到webapps下面,需要手工补全。给大家讲解一下。

1)创建一个Spring boot工程。手动添加2个依赖。

在pom.xml文件中添加如下的2个依赖。

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.apache.tomcat.embed</groupId>

<artifactId>tomcat-embed-jasper</artifactId>

</dependency>

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

2)创建 config包,编写Java配置类MvcConfig,它必须实现接口WebMvcConfigurer。同时实现一个方法。

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp("/jsp/",".jsp");
    }
}

3)这里的@Configuration就是采用Java的方法做配置的注解,相等于我们原来在applicationContext.xml中进行配置一样的道理。这里的configureViewResolvers方法很显然就是配置我们的视图解析器,里面代码就是配置前缀和后缀。很显然我们必须创建一个文件夹jsp,它应该放在webapp文件夹下面。

4)补全webapp文件夹和jsp文件夹。补全的方法如下图所示:

在webapp下面创建jsp文件夹

5)编写创建包,编写Book实体类。

package com.java.chapter02jsp.entity;

public class Book {
    private Integer id;
    private String name;
    private String author;

public Book() {
    }

public Book(Integer id, String name, String author) {
        this.id = id;
        this.name = name;
        this.author = author;
    }

//getter和setter省略...
}

6)编写IndexController,编写代码。

package com.java.chapter02jsp.controller;

import com.java.chapter02jsp.entity.Book;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.ArrayList;
import java.util.List;

@Controller
public class IndexController {
    @GetMapping("/index")
    public String index(Model model){
        List<Book> list=new ArrayList<>();
        Book book1=new Book(1,"罗贯中","三国演义");
        Book book2=new Book(2,"曹雪芹","红楼梦");
        Book book3=new Book(3,"吴承恩","西游记");
        Book book4=new Book(4,"施耐庵","水浒传");

list.add(book1);
        list.add(book2);
        list.add(book3);
        list.add(book4);
        model.addAttribute("books",list);
        return "index";
    }
}

7)编写index.jsp页面视图,放在jsp文件夹下面。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<table border="1" cellspacing="1" cellpadding="1" width="500">
    <tr>
        <td>图书编号</td>
        <td>图书名称</td>
        <td>图书作者</td>
    </tr>
    <c:forEach var="book" items="${books}">
        <tr>
            <td>${book.id}</td>
            <td>${book.name}</td>
            <td>${book.author}</td>
        </tr>
    </c:forEach>
</table>
</body>
</html>

8)测试,在浏览器中输入http://localhost:8080/index

 

需要说明的是,我们这里并没有配置web.xml文件,在Spring boot中对jsp的支持是不需要该文件的,这里特别说明一下。

截止到今天峰哥带着大家把所有的视图都整合了一遍。对于一些主流的视图该怎么整合,相信各位小伙伴已经有了清楚的认识了。希望大家多写两遍。理清一下思路。Spring Boot里面关于视图的整合就这些,真的不难。

最新文章

  1. 解决IE6/IE7/IE8不支持before,after问题
  2. 【转】Oracle AWR 配置查看
  3. Hibernate 缓存介绍
  4. JSP标准标签库(JSTL)之核心标签(上)
  5. WebViewJavascriptBridge-Obj-C和JavaScript互通消息的桥梁
  6. C#中Hashtable容器的了解与使用
  7. 1647: [Usaco2007 Open]Fliptile 翻格子游戏
  8. 201521123055 《Java程序设计》第13周学习总结
  9. [Swift]LeetCode903. DI 序列的有效排列 | Valid Permutations for DI Sequence
  10. springboot中JPA的应用
  11. 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)
  12. 继承 多态 java相关基础知识
  13. 嵌入式系统WinCE下应用程序GUI界面开发【转】
  14. Office办公 SVG的图片文件如何保存为PNG
  15. Kafka设计解析(四)Kafka Consumer设计解析
  16. textview 使drawable与text一起居中的textview,这里仅支持drawableleft
  17. oracle环境变量详解
  18. OutputStreamWriter API 以及源码解读
  19. Flask蓝图目录、Flask-SQLAlchemy、Flask-Script、Flask-Migrate
  20. mongodb(四)

热门文章

  1. Java面试题4-附答案
  2. sql 日期表示
  3. ROC曲线、KS曲线
  4. [Windows] Access SMBIOS
  5. 以elasticsearch-hadoop 向elasticsearch 导数,丢失数据的问题排查
  6. springboot学习笔记:2.搭建你的第一个springboot应用
  7. curl_getinfo的巧用
  8. python os.path 模块常用方法
  9. Selenium2自动化——初体验
  10. swift中的闭包总结