spring boot整合thymeleaf,支持JSP和HTML页面开发
发布日期:2021-06-29 15:34:06 浏览次数:3 分类:技术文章

本文共 4340 字,大约阅读时间需要 14 分钟。

spring boot同时支持JSP和HTML

一、创建一个spring boot的web程序

首先通过IDEA快速建立一个spring boot的应用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1wkZ64WG-1606804096818)(imgs_thymeleaf/1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yMk7CtH0-1606804096821)(imgs_thymeleaf/2.png)]

选择好spring web所需的模块。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WHU0nEjo-1606804096822)(imgs_thymeleaf/3.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K7w63kDt-1606804096824)(imgs_thymeleaf/4.png)]

之后在java下新建一个controller,新建一个hellocontroller.java文件,之后测试一下,在游览器打开localhost:8080/hello。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sgmEUUgI-1606804096827)(imgs_thymeleaf/5.png)]

@RestControllerpublic class HelloController {
@GetMapping("/hello") public String hello(){
return "hello spring boot!"; }}

出现下图则代表spring boot搭建正常。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TWn1oKhI-1606804096829)(imgs_thymeleaf/6.png)]

二、spring boot支持thymeleaf

thymeleadf是支持html的,那么如何操作呢?

2.1 pom.xml

在pom.xml中添加依赖包

org.springframework.boot
spring-boot-starter-thymeleaf

2.2 application.yml

对spring boot新建的application.properties文件重命名为application.yml文件,之后添加thymeleaf配置。这里将thymeleaf默认扫描的位置更改了。需在main/webapp/WEB-INF新建。

server:  port: 8080spring:  thymeleaf:    cache: true    mode: LEGACYHTML5  #非严格模式      prefix: /WEB-INF/ #默认 classpath:/templates/      suffix: .html      servlet:        content-type: text/html

2.3 新建一个webapp目录

新建的目录结构如图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IImJ7Fdp-1606804096840)(imgs_thymeleaf/7.png)]、

之后在IDEA下的File,选择Project structure选项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JZGuBs4G-1606804096852)(imgs_thymeleaf/8.png)]

之后选择modules->web,出现如下所示界面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EQlEw0eS-1606804096854)(imgs_thymeleaf/9.png)]

之后对其添加webapp目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B5eENIja-1606804096855)(imgs_thymeleaf/10.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lhg3O69R-1606804096855)(imgs_thymeleaf/11.png)]

点击create artifact之后出现的界面,ok即完成。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kekhAsNL-1606804096857)(imgs_thymeleaf/12.png)]

2.4 webapp/WEB-INF/show.html

在WEB-INF下新建一个show.html的文件,内容如下所示

    SpringBoot模版渲染    

2.5 Thymeleaf_JSP_Controller

在controller下新建thymeleaf_jsp_controller文件,如下所示:

package com.lcz.springboot_thymeleaf_jsp.controller;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@Controllerpublic class Thymelead_JSP_Controller {
private static Logger logger = LoggerFactory.getLogger(Thymelead_JSP_Controller.class); @GetMapping("/show") public String show(Model model, HttpServletRequest request, HttpServletResponse response){
model.addAttribute("name","HTML"); return "show"; }}

注意: 在controller层这里使用的@Controller注解,而不是@RestController注解。

RestController = Controller + ResponseBody.使用@RestController,返回的内容是你return中的内容,如果是return “Hello World”,页面显示的就是Hello World。使用@Controller,返回的是return中对应的页面,比如return “hello”,页面的名称是hello。

出现如下所示,即成功完成thymeleaf的搭建操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U9NGNmjc-1606804096880)(imgs_thymeleaf/13.png)]

三、spring boot支持jsp

在上述的基础上,使其支持jsp页面的开发。

3.1 pom.xml

在pom.xml中添加依赖,使其支持jsp的开发

org.springframework.boot
spring-boot-starter-tomcat
provided
org.apache.tomcat.embed
tomcat-embed-jasper
provided
javax.servlet
javax.servlet-api
4.0.1
provided
javax.servlet
jstl

3.2 application.yml

在application.yml添加配置,整体配置如下

server:  port: 8080spring:  mvc:    view:      prefix: /WEB-INF/      suffix: .jsp  thymeleaf:    cache: false    mode: LEGACYHTML5  #非严格模式    prefix: /WEB-INF/ #默认 classpath:/templates/    suffix: .html    servlet:      content-type: text/html

3.3 webapp/WEB-INF/show-jsp.jsp

show-jsp.jsp的代码如下所示:

<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" pageEncoding="UTF-8" %><%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>    

3.4 Thymeleaf_JSP_Controller

在Thymeleaf_JSP_Controller中添加另外一个的controller的请求。不同于之前的请求,用request来转发至页面。具体代码如下所示:

package com.lcz.springboot_thymeleaf_jsp.controller;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@Controllerpublic class Thymelead_JSP_Controller {
private static Logger logger = LoggerFactory.getLogger(Thymelead_JSP_Controller.class); @GetMapping("/show") public String show(Model model, HttpServletRequest request, HttpServletResponse response){
model.addAttribute("name","HTML"); return "show"; } @GetMapping("/show_jsp") public void show_jsp(Model model, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
model.addAttribute("name","name"); request.setAttribute("name","JSP"); request.getRequestDispatcher("/WEB-INF/show_jsp.jsp").forward(request, response); }}

出现以下界面,则表示搭建完成!!!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lD65smK8-1606804096881)(imgs_thymeleaf/14.png)]

转载地址:https://codingchaozhang.blog.csdn.net/article/details/110431490 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【Java网络编程与IO流】Spring boot整合SSE实现服务器实时推送流信息
下一篇:【Leetcode刷题篇】leetcode136 只出现一次的数字

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月10日 18时26分29秒