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.pswp.cn/web/72734.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72734.shtml
英文地址,請注明出處:http://en.pswp.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;通過鍵&#…