springboot 框架学习 thymeleaf静态模板引擎实现页面跳转

最近在深啃jvm虚拟机,主要方法是阅读《深入java虚拟机》这本书,写的很形象深入,简单易懂。今天上web课程老师讲到servlet时突然想到boot的页面跳转与数据响应。

之前的springmvc在boot中也有集成,但是boot的常用页面是html5,不是jsp页面,所以对于数据的显示与获取有了一定的不适。不过这个得到了解决,入手的springboot+vue实战开发这本书中对于boot开发简单的项目讲解的比较好。

基于上一次静态资源访问的基础上,我们搭建一个具备增删改查的图书信息测试。

一、dao层

@Mapper
public interface BookDao {
//    利用mybatis框架写好需要使用的数据库操作方法

    /*查看全部*/
    @Select("select * from test.bootsm_book")
    List<Book> allBook();
    /*按条件查询*/
    @Select("select * from test.bootsm_book where bookId = #{bookId}")
    Book queryById(Integer bookId);
    /*修改*/
    @Update("update test.bootsm_book set bookName=#{bookName},bookPrice=#{bookPrice},bookType=#{bookType} where bookId=#{bookId}")
    Boolean update(Book book);
    /*插入*/
    @Insert("insert into test.bootsm_book values (#{bookId},#{bookName},#{bookPrice},#{bookType})")
    Boolean save(Book book);
    /*按条件删除*/
    @Delete("delete from test.bootsm_book where bookId=#{bookId}")
    Boolean delete(Integer bookId);
    /*实现登录*/
    @Select("select * from test.bootsm_book where bookId=#{bookId} and bookName=#{bookName}")
    Boolean login(Integer bookId,String bookName);
    /*实现*/

}

二、service层

public interface BookService {
    List<Book> allBook();
    Book queryById(Integer bookId);
    Boolean update(Book book);
    Boolean save(Book book);
    Boolean delete(Integer bookId);
    Boolean login(Integer bookId,String bookName);
}

@Service
public class BookServiceImpl implements BookService {

    @Autowired
    private BookDao bookDao;

    @Override
    public List<Book> allBook() {
        return bookDao.allBook();
    }

    @Override
    public Book queryById(Integer bookId) {
        return bookDao.queryById(bookId);
    }

    @Override
    public Boolean update(Book book) {
        return bookDao.update(book);
    }

    @Override
    public Boolean save(Book book) {
        return bookDao.save(book);
    }

    @Override
    public Boolean delete(Integer bookId) {
        return bookDao.delete(bookId);
    }

    @Override
    public Boolean login(Integer bookId, String bookName) {
        return bookDao.login(bookId,bookName);
    }
}

三、controller层

@Controller
public class BookController {

    @Autowired
    private BookService bookService;

    @GetMapping("books")
    public ModelAndView allBook(){
        ModelAndView modelAndView = new ModelAndView();
        List<Book> bookList = bookService.allBook();
        modelAndView.addObject("bookList",bookList);
        modelAndView.setViewName("list");
        return modelAndView;
    }

    @RequestMapping("query")
    @ResponseBody
    public Book query(Integer bookId){
        return bookService.queryById(bookId);
    }

    /*先到add页面提交保存数据,再由真正的save方法接收数据并操作数据库*/
    @RequestMapping("add")
    public ModelAndView add(){
        ModelAndView modelAndView =  new ModelAndView("add");
        return modelAndView;
    }
    @RequestMapping("save")
    public ModelAndView save(Book book){
        ModelAndView modelAndView = new ModelAndView();
        bookService.save(book);
        List<Book> bookList = bookService.allBook();
        modelAndView.addObject("bookList",bookList);
        modelAndView.setViewName("list");
        return modelAndView;
    }

    /*测试使用模板引擎实现的页面跳转,很强!*/
    @RequestMapping("test")
    public ModelAndView test(){
        ModelAndView modelAndView = new ModelAndView("test");
        return modelAndView;
    }
}

四、pojo模型

@Data
public class Book {
    private int bookId;
    private String bookName;
    private String bookPrice;
    private String bookType;
}

五、templates文件夹

list.html

<!DOCTYPE html>
<html lang="en" xmlns:span="http://www.w3.org/1999/html" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>显示书目列表</h2>
<span th:text="${bookList}"></span>
<h3>搜索书籍</h3>
<form action="/query" method="post">
    <p><input type="text" name="bookId"></p>
    <p><input type="submit"></p>
</form>
<a href="/add">增加新书信息</a>
</body>
</html>

add.html

<!DOCTYPE html>
<html lang="zh" xmlns:th="Thymeleaf 官网网址">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>注册新书目信息</h2>
    <form method="post" action="/save">
        <p>书号<input type="text" name="bookId"></p>
        <p>书名<input type="text" name="bookName"></p>
        <P>价格<input type="text" name="bookPrice"></P>
        <p>类型<input type="text" name="bookType"></p>
        <p>提交<input type="submit"></p>
    </form>
</body>
</html>

test.html4

<!DOCTYPE html>
<html lang="zh" xmlns:th="Thymeleaf 官网网址">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
test success!
</body>
</html>

六、application.yml

server:
  port: 80

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/test
      username: root
      password: 123456
#    提供的模板引擎设置热部署,不使用cache,部署的文件类型是HTML5
  thymeleaf:
    cache: false
    mode: HTML5
#  mvc:
#    static-path-pattern: /static/*

七、跳转所需的静态模板引擎坐标

 <!--导入静态加载的模板引擎坐标-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

八、测试页面(为了测试页面跳转并没有加上修饰)

 

 

 学习多线程、并发编程、jvm最近更新boot可能有点慢。补一补java高级再深入spring框架的源码,希望计划能顺利。天气越热心就浮躁起来了。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ForestSpringH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值