SpringBoot学习(三)SpringBoot整合JSP以及Themeleaf

目录

  • Spring Boot 整合 JSP
    • 1. 配置依赖
    • 2. 创建WEB目录结构,配置JSP解析路径
    • 3. 创建Controller类
    • 4. 修改application.yml
    • 5. 添加jstl标签库的依赖
    • 6. JSP页面
    • 7. 创建启动类
  • Spring Boot 整合 Thymeleaf
    • 1. 添加Thymeleaf依赖
    • 2. Controller
    • 3. 修改`application.yml`配置:
    • 4. 创建页面
    • 5. 访问

Spring Boot 整合 JSP

在Spring Boot项目里写 jsp 是可以的,但是需要准备一个 web 项目的目录结构。

1. 配置依赖

新建一个普通Maven项目,不需要模板的支持:
在这里插入图片描述
在这里插入图片描述

在pom.xml里面添加Spring Boot的依赖:
SpringBoot依赖和SpringMVC的依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.veeja</groupId><artifactId>springboot-jsp</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><!-- 继承方式:添加SpringBoot启动器 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.10.RELEASE</version></parent><!-- 添加SpringMVC启动器依赖 --><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.1.10.RELEASE</version></dependency></dependencies></project>

2. 创建WEB目录结构,配置JSP解析路径

在src/main/下创建文件夹webapp,在webapp目录下创建WEB-INF文件夹:
在这里插入图片描述
配置JSP解析路径:
File→Project Structure→Modules→项目,web→点击下面的”+”号→选择当前项目里jsp的路径→ok→ok→Apply ok。
在这里插入图片描述
这回webapp路径下 就让创建jsp页面了。
在这里插入图片描述

3. 创建Controller类

我们做一些假的数据就可以了:

package com.veeja.controller;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;/*** @Author veeja* 2021/1/8 14:03*/
@Controller
public class MyController {@RequestMapping("/show")public String show(Model model) {List<String> list = new ArrayList<>();list.add("liuweijia");list.add("lilingjie");list.add("limeimei");list.add("liushuaishuai");model.addAttribute("lsit", list);return "show";}
}

4. 修改application.yml

server:port: 8086spring:mvc:view:prefix: /WEB-INF/jspsuffix: .jsp

5. 添加jstl标签库的依赖

<dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version>
</dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version>
</dependency>

6. JSP页面

<%--Created by IntelliJ IDEA.User: veejaDate: 2021/1/8Time: 14:11To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>首页</title>
</head>
<body><c:forEach items="list" var="s">${s}<br/></c:forEach></body>
</html>

7. 创建启动类

package com;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @Author veeja* 2021/1/8 14:17*/
@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

启动服务,访问页面即可。
在这里插入图片描述
结果他妈的这个逼东西没有解析,

我排查了好久,实在不知道为啥,放弃了。
等一个有缘人来解决吧。

在这里插入图片描述

Spring Boot 整合 Thymeleaf

Spring Boot 官方推荐使用thymeleaf作为 视图展示技术。
thymeleaf 就是html页面,只不过是在html页面的标签里插入thymeleaf 的语法 ,达到的效果跟jsp一样。
Thymeleaf的文件必须在一个templates文件夹中,该文件夹还有个特性:跟 WEB-INF 一样。不能通过浏览器url直接访问;所有 thymeleaf 页面必须先走控制器。

thymeleaf的 效率 高于jsp:

JSP:
第一次访问:jsp→.java→.class→.html
之后的访问 :.class→.html

Thymeleaf: 本身就是html

1. 添加Thymeleaf依赖

<!-- 添加 Thymeleaf 的依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId><version>2.1.10.RELEASE</version>
</dependency>

2. Controller

写一个简单的Controller,service层就借用之前的SpringBoot1项目的StudentService。

Controller:

/*** @Author veeja* 2021/1/7 11:44*/
@RestController
public class StudentController {@Resourceprivate StudentService studentService;@RequestMapping("/getAll")public ModelAndView getAll() {ModelAndView mv = new ModelAndView();mv.addObject("list", studentService.selectAll());mv.setViewName("show");return mv;}
}

3. 修改application.yml配置:

在这里插入图片描述

mvc:view:prefix: classpath:/templates/suffix: .html

4. 创建页面

src/main/resources/下创建templates文件夹,并且在该文件夹下创建index.html页面:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title>Title</title></head><body><table><tr><td>学生ID</td><td>学生姓名</td><td>学生年龄</td></tr><tr th:each="student:${list}"><td th:text="${student.id}"></td><td th:text="${student.name}"></td><td th:text="${student.age}"></td></tr></table></body>
</html>

5. 访问

浏览器访问即可:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/72734.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

普通鼠标的500连击的工具来了!!!

今天介绍的这款软件叫&#xff1a;鼠标录制器&#xff0c;是一款大小只有54K的鼠标连点器&#xff0c;软件是绿色单文件版。抢票&#xff0c;拍牌&#xff0c;摇号都能用上。文末有分享链接 在使用先我们先设置快捷键&#xff0c;这样我们在录制和停止录制的时候会更方便。 软件…

【MySQL】基本查询(表的增删查改+聚合函数)

目录 一、Create1.1 单行数据 全列插入1.2 多行数据 指定列插入1.3 插入否则更新1.4 替换 二、Retrieve2.1 SELECT 列2.1.1 全列查询2.1.2 指定列查询2.1.3 查询字段为表达式2.1.4 为查询结果指定别名2.1.5 结果去重 2.2 WHERE 条件2.2.1 比较运算符2.2.2 逻辑运算符2.2.3 案…

JAVA中关于图形化界面的学习(GUI)动作监听,鼠标监听,键盘监听

动作监听&#xff1a; 先创建一个图形化界面&#xff0c;接着创建一个按钮对象&#xff0c;设置按钮的大小。 添加一个addActionListener()&#xff1b; addActionListener() 方法定义在 java.awt.event.ActionListener 接口相关的上下文中&#xff0c;许多支持用户交互产生…

MySQL 基础学习文档

一、MySQL 概述 1.1 核心概念 数据库 (DB)&#xff1a;存储数据的结构化仓库数据库管理系统 (DBMS)&#xff1a;操作数据库的软件&#xff08;如 MySQL、Oracle&#xff09;SQL&#xff1a;操作关系型数据库的标准语言 1.2 安装与配置 下载地址&#xff1a;MySQL Installer…

火山引擎(豆包大模型)(抖音平台)之火山方舟的Prompt的使用测试

前言 在大模型的使用过程当中&#xff0c;Prompt的使用非常的关键。原来&#xff0c;我对Prompt的理解不深&#xff0c;觉得Prompt的产生并不是很有必要。但是&#xff0c;自从使用了火山方舟中的“Prompt优解”之后&#xff0c;感受加深了&#xff0c;觉得Prompt是我们和大模型…

SpringBoot入门-(2) Spring IOC机制【附实例代码】

SpringBoot入门-(2) Spring IOC机制 Spring Spring是一个当前主流的轻量级的框架&#xff0c;发展到形状已经不仅仅是一个框架&#xff0c;而是形成以Spring为基础的生态圈&#xff0c;如(Spring Boot,Spring Cloud,Spring Security等) Spring 两大核心技术 控制反转(IoC)面…

备赛蓝桥杯之第十六届模拟赛3期职业院校组

提示&#xff1a;本篇文章仅仅是作者自己目前在备赛蓝桥杯中&#xff0c;自己学习与刷题的学习笔记&#xff0c;写的不好&#xff0c;欢迎大家批评与建议 由于个别题目代码量与题目量偏大&#xff0c;请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题&#xff0…

【AI大模型】提示词(Prompt)工程完全指南:从理论到产业级实践

【AI大模型】提示词&#xff08;Prompt&#xff09;工程完全指南&#xff1a;从理论到产业级实践 一、Prompt 提示词介绍&#xff1a;AI的“密码本” 1. Prompt的底层定义与价值 本质&#xff1a;Prompt是人与AI模型的“协议语言”&#xff0c;通过文本指令激活模型的特定推理…

Excel 小黑第12套

对应大猫13 涉及金额修改 -数字组 -修改会计专用 VLOOKUP函数使用&#xff08;查找目标&#xff0c;查找范围&#xff08;F4 绝对引用&#xff09;&#xff0c;返回值的所在列数&#xff0c;精确查找或模糊查找&#xff09;双击填充柄就会显示所有值 这个逗号要中文的不能英…

基于Spring Boot的冷链物流系统的设计与实现的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

python环境集成整理

接口测试过程中&#xff0c;可能会切换测试环境&#xff0c;通过配置相关信息修改 设计思路&#xff1a; 1、 准备各个环境配置文件信息&#xff0c;包括http、common 、redis、db 2、创建不同环境配置信息 测试环境&#xff1a;env_test.yml、 预生产环境:env_prepro.yml、生产…

动平衡仿真程序设计

以下是针对动平衡振动信号分析的模块扩展方案&#xff0c;基于原有信号发生器架构进行增强&#xff1a; 一、动平衡专用信号生成器 // UnbalanceVibrationGenerator.h #pragma once #include "SignalGenerator.h" #include <vector>class UnbalanceVibration…

牛客周赛85 题解 Java ABCDEFG

A小紫的均势博弈 判断输入的 n 是奇数还是偶数 import java.io.*; import java.math.*; import java.util.*;public class Main {static IoScanner sc new IoScanner();static final int mod(int) (1e97);static void solve() throws IOException {int nsc.nextInt();if(n%2…

python——UI自动化(1) selenium之介绍和环境配置

一、selenium介绍 selenium是一个第三方库&#xff0c;python有很多库&#xff1b; 1、什么是ui自动化? 通过模拟手工操作用户ui页面的方式&#xff0c;用代码去实现自动化操作和验证的行为。 2、ui自动化的优点&#xff1f; &#xff08;1&#xff09;解决重复性的功能测…

Can通信流程

下面给出一个更详细的 CAN 发送报文的程序流程说明&#xff0c;结合 HAL 库的使用及代码示例&#xff0c;帮助你了解每一步的具体操作和内部原理。 一、系统与外设初始化 1.1 HAL 库初始化 在 main() 函数开头&#xff0c;首先调用 HAL 库初始化函数&#xff1a; HAL_Init()…

15 数据结构及算法应用

15 数据结构及算法应用 15.1 算法策略区分 15.1.1、分治法 特征:把一个问题拆分成多个小规模的相同子问题&#xff0c;一般可用递归解决。 经典问题:斐波那契数列、归并排序、快速排序、矩阵乘法、二分搜索、大整数乘法、汉诺塔。 15.1.2、贪心法 (一般用于求满意解) …

基于大模型的唇裂手术全流程预测与应用研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目标与内容 二、唇裂相关医学知识概述 2.1 唇裂的定义、分类与发病原因 2.2 唇裂对患者生理与心理的影响 2.3 传统唇裂治疗方法与局限性 三、大模型技术原理与应用基础 3.1 大模型概述 3.2 适用于唇裂预测的大模型类型及特…

环境变量设置异常导致UOS文件管理器无法正常运行

编译QT5.15.2&#xff0c;与UOS20.9的QT依赖冲突 现象原因解决方法 现象 重启系统后UOS桌面变成黑色&#xff0c;没有任何图标&#xff0c;任务栏的应用本来是有预览的&#xff0c;但也变得不可用。 原因 找了很久&#xff0c;查到原来是dde-file-manager未能正常启动。直接…

《认知觉醒》改变的核心方法论

《认知觉醒》改变的核心方法论 一、认知觉醒的核心目标 改变 → 提升能力 → 获得更好生活 二、大脑运作机制 脑区运算速度作用特点本能脑1.1亿次/秒自动化反应&#xff0c;能量消耗低情绪脑1.1亿次/秒情感驱动型决策​理智脑​40次/秒战略指挥官角色 关键差异&#xff1a…

Python中的字典:深度解析与应用实践

一、字典的本质与特性 Python字典&#xff08;Dictionary&#xff09;是以**键值对&#xff08;Key-Value Pair&#xff09;**形式存储数据的无序集合&#xff0c;使用大括号{}定义。其核心特性包括&#xff1a; 快速查找&#xff1a;基于哈希表实现&#xff0c;通过键&#…