【1. 1】Web开发 ------整合 ThemeLeaf
一、SpringBoot 对静态资源的映射规则是什么?
Spring Boot 默认提供静态资源目录位置需置于 classpath 下,目录名需符合如下规则:
- / static
- / public
- / resources
- / META-INF / resources
例如:我们可以在 src / main / resources / 目录下创建 static 文件夹,在该位置放置一个图片文件。启动程序后,尝试访问 http://localhost:8080/A.jpg。如能显示图片,配置成功。
之前的基础 DEMO 都是通过 @RestController 来处理请求,所以返回的内容为 json 对象。那么如果需要 渲染 html 页面的时候,要如何实现呢?
二、模板引擎
概念: 模板引擎(这里特指用于 Web 开发的模板引擎)为了使用户界面与业务数据(内容)分离而产生,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的文档。
原理:本质是将模板文件和数据通过模板引擎生成最终的HTML代码(如图)
基本机理 :就是替换 (转换),将指定的标签转换为需要的业务数据;将指定的伪语句按照某种流程来变换输出。
为什么用 ThemeLeaf 模板引擎 ? SpringBoot 提供了 Thymeleaf 自动化配置解决方案;ThemeLeaf 本身语法简单、功能强大!
三、ThemeLeaf 基本使用
【1】引入 thymeleaf 启动器
<properties><thymeleaf.version>3.0.9.RELEASE</thymeleaf.version><!-- 布局功能的支持程序 thymeleaf3主程序 layout2以上版本 --><!-- thymele af2 layout1--><thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
</properties>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
也可以在快速创建 SpringBoot 项目那里,选 Template Engine —> ThemeLeaf
【2】编写模板文件
把HTML页面放在 classpath:/ templates /,thymeleaf 就能自动渲染;
(1) 导入 thymeleaf 的名称空间
在模板文件中,添加一下内容
<html lang="en" xmlns:th="http://www.thymeleaf.org">
(2) thymeleaf 语法
th:text :改变当前元素里面的文本内容;
th :任意 html 属性,来替换原生属性的值
${...}
变量表达式即 OGN L表达式或 Spring EL 表达式;
@Controller
public class HelloController {@RequestMapping("/")public String index(ModelMap map) {// 加入一个属性,用来在模板中读取map.addAttribute("host", "http://blog.didispace.com");// return模板文件的名称,对应src/main/resources/templates/index.htmlmap.addAttribute("list", userList);return "index"; }
}
<body><h1 th:text="${host}">Hello Themeleaf!</h1><table> <tr><td>编号</td><td>用户名</td><td>地址</td></tr><tr th:each="user : ${userList"}><td th:text = "${user.id}"></td><td th:text = "${user.name}"></td><td th:text = "${user.address}"></td></tr></table>
</body>
*{...}
选择表达式很像变量表达式,不过它们用一个预先选择的对象来代替上下文变量容器 (map) 来执行。 *{Object.attribute}
<div th:object="${book}"> ... <span th:text="*{title}">...</span> ...
</div>
#{...}
消息表达式,(通常称为文本外部化,国际化或 (i18n) 允许从外部资源。 (如: .properties) 文件中检索特定于语言环境的消息,通过键来引用这引用消息。
<table>...<th th:text="#{header.address.city}">...</th><th th:text="#{header.address.country}">...</th>...
</table>
@{...}
URL表达式 指的是把一个有用的上下文或回话信息添加到 URL,这个过程经常被叫做 URL 重写。
<form th:action="@{/createOrder}"> <a href="main.html" th:href="@{/main}">
~{...}
片段表达式
【1. 1】Web开发 ------整合 ThemeLeaf相关推荐
- 浅谈PHP与Java之Web开发整合技术
淺談PHP與Java之Web開發整合技術 鄭哲聖郑哲圣 前言 PHP為語法簡單的腳本語言,可以做為HTML的嵌入型語言,而且與Apache網頁伺服器搭配的設定容易.效能亦高. 前言 ...
- 大数据与web开发整合的最佳实践-思考
数据体系 web接口 OLTP数据库 Restful接口 OLAP数据库 WebSocket接口
- spring boot 整合web开发之文件上传、静态资源访问、异常处理、返回JSON数据
目录 springboot 整合web开发 返回json数据 静态资源访问 文件上传 全局异常 1.返回json数据 springboot默认的是jackson-databind做为json处理器.也 ...
- Spring整合web开发
正常整合Servlet和Spring没有问题的 public class UserServlet extends HttpServlet {public void doGet(HttpServletR ...
- day38 19-Spring整合web开发
整合Spring开发环境只需要引入spring-web-3.2.0.RELEASE.jar这个jar包就可以了,因为它已经帮我们做好了. Spring整合web开发,不用每次都加载Spring环境了. ...
- gin ip 和 本地访问的结果不一样_golang web开发——gin实战之整合swagger
背景 如果我们之前搞过java web开发,我们应该都知道swagger这个API文档自动生成利器,有了swagger可以方便我们与客户端的联调,基本上是一目了然,swagger支持java,自然它也 ...
- 张利国java pdf_Java Web开发与实战–Eclipse+Tomcat+Servlet+JSP整合应用 (刘伟张利国) PDF...
资源名称:Java Web开发与实战–Eclipse+Tomcat+Servlet+JSP整合应用 (刘伟,张利国) PDF 第1章 web开发工具的安装与使用 第2章 web编程技术基础 第3章 s ...
- JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)、Spring整合web开发、整合Junit4测试
Spring框架学习路线 Spring的IOC Spring的AOP,AspectJ Spring的事务管理,三大框架的整合 Spring框架概述 什么是Spring? Spring是分层的Java ...
- [Java Web整合开发王者归来·刘京华] 1、 Java Web开发
目录: 1.Web技术简介 2.动态网站与静态网站 3.Java Web开发模式 4.JavaScript简介 1.Web技术简介 PS: 最近还有更凶残的技术,即整个操作系统都是基于Web的,如火狐 ...
最新文章
- IDEA如何导入多个maven依赖的项目
- 带你理清 Java 混乱的日志体系 - log4j、logback、log4j2、jcl、SLFJ 究竟是啥关系?
- 【经验分享】产品、运营人如何告别重复的数据分析工作?
- #2989. 数列(cdq分治/曼哈顿距离)
- MacBook 推出移动硬盘时总是提示有程序在使用它,如何解决?
- Java多线程 —— 线程状态迁移
- php输入数据提交排序,排序php数据var
- django 1.8 官方文档翻译: 6-4-2 编写自定义的django-admin命令
- 第一次网络渗透实验报告
- JS内功修炼-基础篇
- Linux下调整屏幕分辨率
- 星星之火-35:为什么傅里叶分析需要引入负频率以及负频率的物理意义是什么?
- linux icc编译器,icc编译器
- 在OpenCV里绘制直线、圆、中文等图形
- 财路网每日原创推送:一种基于区块链技术的新融资模式——STO
- 论文笔记:Neural Collaborative Filtering(NCF)
- Mesos的未来DCOS已经明朗化
- MATLAB/Simulink搭建电动助力转向模型
- Alertmanager 报警规则
- LearnOpenGL_study -- 光照贴图