SpringBoot2(thymeleaf模板jsp页面和jpa)

一、thymeleaf模板

  1、在pom.xml中导入依赖

 <!-- 添加thymeleaf模版的依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

  2、配置application.yml文件

###配置thymeleaf
spring:
   thymeleaf:
      cache: false

  3、在resources目录下添加templates包,并在此包下创建index.html页面

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>thymeleaf模板页面</title>
</head>
<body>
    <ul th:each="stu:${stuList}">
        <li>
            <span th:text="${stu.stu_id}"></span>
            <span th:text="${stu.stu_name}"></span>
        </li>
    </ul>
</body>
</html>

  4、创建启动类

package com.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class StartSpringBoot {
    public static void main(String[] args){
        SpringApplication.run(StartSpringBoot.class,args);
    }
}

  5、创建实体类student

package com.boot.entity;

public class student {
    private Integer stu_id;
    private String stu_name;

    public Integer getStu_id() {
        return stu_id;
    }

    public void setStu_id(Integer stu_id) {
        this.stu_id = stu_id;
    }

    public String getStu_name() {
        return stu_name;
    }

    public void setStu_name(String stu_name) {
        this.stu_name = stu_name;
    }

    public student(Integer stu_id, String stu_name) {
        this.stu_id = stu_id;
        this.stu_name = stu_name;
    }
}

  6、创建Controller类

package com.boot.controller;

import com.boot.entity.student;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

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

@Controller
@RequestMapping("/thymeleafController")
public class thymeleafController {

    @RequestMapping("/thymeleaf")
    public String thymeleaf(Model model){
        List<student> list=new ArrayList<>();
        student stu1=new student(1,"张三");
        student stu2=new student(2,"李四");
        student stu3=new student(3,"王五");
        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        model.addAttribute("stuList",list);
        return "index";
    }
}

  7、页面效果如下

    

二、SpringBoot中使用jsp

  1、创建一个jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>jsp页面</title>
</head>
<body>
    欢迎:${name}123123
</body>
</html>

  2、创建启动类

package com.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class StartSpringBoot {
    public static void main(String[] args){
        SpringApplication.run(StartSpringBoot.class,args);
    }
}

  3、创建Controller类

package com.boot.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/restJspController")
public class restJspController {
    @RequestMapping("/restJsp")
    public String restJsp(Model model){
        System.out.println("进入控制层");
        model.addAttribute("name","王五");
        return "index";
    }
}

  4、配置application.yml文件

###配置页面前缀后缀
spring:
             mvc:
               view:
                 suffix: .jsp
                 prefix: /jsp/
             http:
               encoding:
                 charset: UTF-8
                 force: true

  5、设置启动

    

  6、页面实现效果如下

    

三、设置热部署

  1、导入热部署依赖

 <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <plugin>
              <groupId>org.springframework.boot</groupId>
                   <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <fork>true</fork>
                    </configuration>
         </plugin>    

  2、在pom.xml中输入Shift+Ctrl+Alt+/

    

  3、勾选如下选项

    

  4、在Settings中配置

    

四、SpringBoot-JPA

  1、导入依赖

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.32</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

  2、创建实体类

package com.boot.entity;

import javax.persistence.*;

@Entity
public class Grade {

    //代表Id为主键并自增
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "GradeID")
   private Integer gradeId;
    @Column(name = "GradeName")
    private String gradeName;

    public Integer getGradeId() {
        return gradeId;
    }

    public void setGradeId(Integer gradeId) {
        this.gradeId = gradeId;
    }

    public String getGradeName() {
        return gradeName;
    }

    public void setGradeName(String gradeName) {
        this.gradeName = gradeName;
    }
}

  3、创建Dao层

package com.boot.dao;

import com.boot.entity.Grade;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

/**
 * CrudRepository <实体类型,实体主键类型>
 */
@Repository
public interface IGradeMapper extends CrudRepository <Grade,Integer>{

}

  4、创建Service层

package com.boot.service;

import com.boot.entity.Grade;

import java.util.List;

public interface IGradeService {
    //添加的方法
    public Grade insertGrade(Grade grade);

    //修改的方法
    public Grade updataGrade(Grade grade);

    //删除的方法
    public void deleteGrade(Integer id);

    //查询所有的方法
    public Iterable<Grade> getAll();
}

  5、创建ServiceImpl层

package com.boot.service.impl;

import com.boot.dao.IGradeMapper;
import com.boot.entity.Grade;
import com.boot.service.IGradeService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class IGradeServiceImpl implements IGradeService {
    @Resource
    IGradeMapper iGradeMapper;
    @Override
    public Grade insertGrade(Grade grade) {
        return iGradeMapper.save(grade);
    }

    @Override
    public Grade updataGrade(Grade grade) {
        return iGradeMapper.save(grade);
    }

    @Override
    public void deleteGrade(Integer id) {
        iGradeMapper.deleteById(id);
    }

    @Override
    public Iterable<Grade> getAll() {
        return iGradeMapper.findAll();
    }
}

  6、创建Controller类

package com.boot.Controller;

import com.boot.entity.Grade;
import com.boot.service.IGradeService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
@RequestMapping("/IGradeController")
public class IGradeController {
    @Resource
    IGradeService iGradeService;

    //新增数据
    @RequestMapping("/insertGrade")
    public Grade insertGrade(){
        Grade grade=new Grade();
        grade.setGradeId(6);
        grade.setGradeName("UI");
        return iGradeService.insertGrade(grade);
    }

    //修改数据
    @RequestMapping("/updataGrade")
    public Grade updataGrade(){
        Grade grade=new Grade();
        grade.setGradeId(1);
        grade.setGradeName("accp");
        return iGradeService.updataGrade(grade);
    }

    //删除数据
    @RequestMapping("/deleteGrade")
    public void deleteGrade(){
        iGradeService.deleteGrade(2);
    }

    //查询数据
    @RequestMapping("/getAllGrade")
    public  Iterable<Grade> getAllGrade(){
        return iGradeService.getAll();
    }
}

  7、实现效果如下

    

    

    

    

原文地址:https://www.cnblogs.com/tinghao/p/12031100.html

时间: 2024-07-30 20:42:51

SpringBoot2(thymeleaf模板jsp页面和jpa)的相关文章

IntelliJ IDEA 2017版 spring-boot2.0.访问jsp页面;IDE Springboot JSp 页面访问

1.编译器设置. 生成项目后,点击file 点开Modules 选中main,右键 选择新建文件夹 把main变为source webapp带点了,就是成功了,在这里建立的JSp就可以访问得到. 原文地址:https://www.cnblogs.com/liuyangfirst/p/9380092.html

SpringBoot入门篇--使用Thymeleaf模板引擎进行页面的渲染

在做WEB开发的时候,我们不可避免的就是在前端页面之间进行跳转,中间进行数据的查询等等操作.我们在使用SpringBoot之前包括我在内其实大部分都是用的是JSP页面,可以说使用的已经很熟悉.但是我们在使用springBoot开发框架以后我们会发现一个致命的问题,就是SpringBoot对Jsp的支持可以说是惨不忍睹,官方推荐我们进行使用的是Thymeleaf模板引擎进行.其实我这里也没搞清楚模板引擎原理是什么,以后有机会再深入了解,我们只需要学会怎么用就行,目前而言.当然模板引擎有很多,比如f

如何针对Thymeleaf模板抽取公共页面

对于公共页面(导航栏nav.页头head.页尾footer)的抽取有三种方式:???????1)基于iframe进行抽取,这种方式很有效,但比较老了,另外为了页面的自适应性,还得做不少工作:???????2)如果是jsp页面,则可以通过<%@ include file="head.jsp"%>进行抽取???????3)利用ajax进行页面加载,但有不少问题???????基于Springboot后台开发框架,JSP虽然还是可以用,但已经强烈推荐使用Thymeleaf模板了,这

Spring MVC和Spring Data JPA之获取数据表数据放在List集合,显示在JSP页面

涉及到很多xml配置没写:只写具体实现的所有类 1.实体类 对应数据表SYS_SBGL, 主键是SBBM,主键是自动生成的uuid 数据表内容如下(有图有真相): package com.jinhetech.yogurt.sbgl.entity; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistenc

在springboot整合thymeleaf模板引擎中@Controller和@RestController不同注解的跳转页面方法

注:本文纯属学习记录,以备后续查阅! 1.通过@RestController注解实现页面跳转: 对应H5静态页面 2.使用@Controller注解实现页面跳转 对应H5静态页面: 之所以会出现@Controller和@RestController两种注解实现跳转页面不同的方式主要的原因是: 通过@RestController源码知道@RestController是@Controller和@ResponseBody的组合注解 如果需要跳转到指定 的页面,需要使用@Controller注解和视图解

Spring MVC视图层:thymeleaf vs. JSP

本文对比了同一Spring MVC工程中相同页面(一个订阅表单)分别采用Thymeleaf和JSP(包括JSP.JSTL.Spring tag lib)两种方式的实现. 本文的所有代码来自一个可运行的应用.你可以从文档页面下载该应用程序的源代码. Common requirements 顾客通过一个表单添加到消息列表中,包含下面两个域: Email地址 订阅类型(接收所有邮件.每日摘要) 要求该页面支持HTML5且完全国际化,国际化信息从Spring框架中配置的MessageSource对象中抽

Spring Boot学习记录(二)--thymeleaf模板

Spring Boot学习记录(二)–thymeleaf模板 标签(空格分隔): spring-boot 自从来公司后都没用过jsp当界面渲染了,因为前后端分离不是很好,反而模板引擎用的比较多,thymeleaf最大的优势后缀为html,就是只需要浏览器就可以展现页面了,还有就是thymeleaf可以很好的和spring集成.下面开始学习. 1.引入依赖 maven中直接引入 <dependency> <groupId>org.springframework.boot</gr

Thymeleaf模板引擎+Spring整合使用方式的介绍

尊重原创,原文地址为:https://www.cnblogs.com/jiangchao226/p/5937458.html 前言 这个教程介绍了Thymeleaf与Spring框架的集成,特别是SpringMvc框架. 注意Thymeleaf支持同Spring框架的3.和4.版本的集成,但是这两个版本的支持是封装在thymeleaf-spring3和thymeleaf-spring4这两个独立的库中,项目中需要根据实际情况分别引用. 样例代码针对的是spring4.,但一般情况下,spring

springboot整合Thymeleaf模板引擎

引入依赖 需要引入Spring Boot的Thymeleaf启动器依赖. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>nekohtml</groupId&g