个人博客网:https://wushaopei.github.io/ (你想要这里多有)
一 、 SpringBoot环境下的视图解析技术
1. JSP
JSP 是我们常用的视图技术了,但是SpringBoot官方并不推荐使用。因为SpringBoot框架一般是打包为Jar运行,而JSP在web工程(War包)中可以被java程序读取和识别,但是在jar包中是比较困难的。所以需要采用其他的模板视图技术。
但我们还是简单的看一下它的使用方法:
- 主启动器
注意:
在SpringBoot中实现JSP视图解析,要在主启动器添加一个排除数据源DataSouce的注解,不然会在编译过程中报错!
注解如下:
- handler
- springBoot的视图解析器配置: application.yml
- jsp
加入依赖:
一般情况下,SpringBoot有自己的内嵌Tomcat服务器,可以自行运行加载Freemarkere所生成 的对应html
---> application.yml中限定的 “.ftl”后缀的页面作为html使用,该文件内部使用html的样式布局。
在SpringBoot访问JSP页面是要引入对应JSP页面,以及对外部即Eclipse的tomcat的加载依赖。
2.Freemarker模板引擎技术
①概念
FreeMarker是一款模板引擎:即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据。
②工作原理
所有的模板视图技术的工作原理基本类似,也就意味着FreeMarker和JSP基本差不多。模板文件和数据模型是模板视图技术用来生成HTML页面所必须的组成部分。
JSP在Web系统中弥补了Servlet生成HTML页面的不足,但只能应用于Web系统,生成HTML页面。而FreeMarker不仅仅应用于Web系统,也可以应用于Java系统,还能生成Java, XML等文件,所以应用面更广。使用时,需要在项目pom.xml文件中增加依赖关系。
用在SpringMVC中是需要加入对应的视图解析器
③基本语法
${...}
FreeMarker将会输出真实的值来替换大括号内的表达式,这样的表达式被称为interpolation(插值)。
<#-- 注释内容 -->
注释和HTML的注释也很相似,但是它们使用<#-- and -->来标识。不像HTML注释那样,FTL注释不会出现在输出中(不出现在访问者的页面中),因为FreeMarker会跳过它们。
<#if condition>
...
<#elseif condition2>
...
<#elseif condition3>
...
<#else>
...
</#if>
- FTL标签和HTML标签有一些相似之处,但是它们是FreeMarker的指令,是不会在输出中打印的。这些标签的名字以#开头。(用户自定义的FTL标签则需要使用@来代替#)
④ 例子
Freemarker模板引擎技术实例
①bean.ftl文件(在工程下,与pom.xml同级)
② Java代码
- 执行java编译
右键 == 》 Java application
生成对应JavaBean文件
③模板生成的javabean
⑤常用语法
【1】条件
<#if condition>
...
<#elseif condition2>
...
<#elseif condition3>
...
<#else>
...
</#if>
【2】循环
<#list users as user>
${user.name},${user_index}
</#list>
【3】包含
<#include "xxxx.ftl">
【4】 表达式
表达式 | 说明 |
---|---|
${Request.member.name} | 从Request域读取数据 |
${Session.member.name} | 从Session域读取数据 |
${Application.member.name} | 从Application域读取数据 |
${RequestParameters['id']} | 读取请求参数 |
${book.name?if_exists } | 用于判断如果存在,就输出这个值 |
${book.name?default(‘xxx’)} | 默认值xxx |
${book.name!"xxx"} | 默认值xxx |
${book.date?string('yyyy-MM-dd')} | 日期格式 |
s?html | 对字符串进行HTML编码 |
s?cap_first | 使字符串第一个字母大写 |
s?lower_case | 将字符串转换成小写 |
s?trim | 去掉字符串前后的空白字符 |
s?size | 获得序列中元素的数目 |
- 示例 :
存 储:
取数据:
3.SpringBoot中使用FreeMarker
①依赖
②增加相关配置
其中最重要的是spring.freemarker.suffix和spring.freemarker.template-loader-path,其他配置项可以使用默认值。
- springBoot中使用Freemarker后,可以生成任意后缀名的文件,只需要在配置文件里面配置好就可以作为前端html页面来使用。
【1】主启动器:
- 此处省略.....这是springBoot中默认要有的
【2】handler方法
【3】配置文件 -- application.yml
【4】前端页面:hello.ftl == 》 工程名下的templates 目录下
4.热部署
热部署的作用是对当前工程的配置文件、handler在修改后,会在保存刷新后进行自动重新加载内置的Tomcat,在控制台打印初始化情况,其主要监听范围是application.yml和application.properties配置文件、handler。
5.日志配置
作用:
该日志配置在于将程序运行过程中的详细流程进行打印,主要用于Debug测试检查时,会打印初始化过程的详细方法执行和值传递等。
保存位置 :
由于一次性打印的日志在Debug界面下会很多,不便于在串口内查看,所以可指定"path"路径进行保存到文件中,第一个“/”代表当前工程所在的盘符位置,后面是父目录、子目录,日志存在子目录中。