后台管理项目freemarker 使用

简介: 后台管理项目freemarker 使用

freemarker 使用

后台管理项目,非前后端分离,通常使用freemarker、thymeleaf,下面介绍一些freemarker使用方法。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

配置后缀 默认 .ftlh

spring:
  freemarker:
    suffix: .ftl

直接上代码

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8"/>
  <title></title>
</head>
<body>
FreeMarker模板引擎
<br/>
<p>
  nullList:<#if nullList??>true<#else>false</#if>
</p>
<p>
  nullList size:<#if nullList?? && nullList?size gt 0>true<#else>false</#if>
</p>

<p>
  emptyList:<#if emptyList??>true<#else>false</#if>
</p>

<p>
  emptyList has_content:<#if emptyList?has_content>true<#else>false</#if>
</p>



<p>
  emptyList size:<#if emptyList?size gt 0>true<#else>false</#if>
</p>

<p>
  dataList:
  <#if dataList??>
      <#list dataList as item>
          ${item!}
      </#list>
  </#if>
</p>

<p>nullStr: ${nullStr!}</p>
<p>nullStr !:  ${nullStr!}</p>
<p>nullStr Default: ${nullStr!'Default'}</p>
<p>emptyStr: ${emptyStr!''}</p>
<p>demoStr:  ${demoStr!''}</p>
<#--<p>nullStr?length:  ${nullStr?length}</p>-->
<p>emptyStr?length:  ${emptyStr?length}</p>
<p>demoStr?length:  ${demoStr?length}</p>

<p>nullStr ??:<#if nullStr??>true<#else>false</#if></p>
<p>emptyStr ??:<#if emptyStr??>true<#else>false</#if></p>
<p>nullStr has_content:<#if nullStr?? && nullStr?has_content>true<#else>false</#if></p>
<p>emptyStr has_content:<#if emptyStr?has_content>true<#else>false</#if></p>
<p>emptyStr?length :<#if emptyStr?length gt 0>${emptyStr}</#if></p>


<p>userName: ${userName!''}</p>
<p>useName length: ${userName?length}</p>
<p>useName upper_case: ${userName?upper_case}</p>
<p>userName uncap_first: ${userName?uncap_first}</p>
<p>userName cap_first: ${userName?cap_first}</p>



</body>
</html>

输出

nullList:false

nullList size:false

emptyList:true

emptyList has_content:false

emptyList size:false

dataList: 1 2 3

nullStr:

nullStr !:

nullStr Default: Default

emptyStr:

demoStr: demoStr

emptyStr?length: 0

demoStr?length: 7

nullStr ??:false

emptyStr ??:true

nullStr has_content:false

emptyStr has_content:false

emptyStr?length :

userName: userName

useName length: 8

useName upper_case: USERNAME

userName uncap_first: userName

userName cap_first: UserName

总结:

判断字符串非空

<#if str?? && str?has_content> 
// TODO
</#if>

<#if str?? && str?length gt 0> 
// TODO
</#if>

判断列表非空

<#if dataList?? && dataList?has_content> 
    <#list dataList as item>
        // TODO ${item!}
      </#list>
</#if>

<#if dataList?? && dataList?size gt 0> 
    <#list dataList as item>
        // TODO ${item!}
    </#list>
</#if>
  • ?? 判断左侧的变量是否丢失,相当于java中的null的判断,或者这个变量是否未定义。
  • ?表示调用对象的方法,对象必须存在. str?length, list?size
  • ! 用来给变量一个默认值,str!”defaultValue”
相关文章
|
JavaScript 关系型数据库 MySQL
基于JavaWeb和mysql实现校园订餐前后台管理系统(源码+数据库)
基于JavaWeb和mysql实现校园订餐前后台管理系统(源码+数据库)
173 0
|
关系型数据库 Linux Nacos
Linux 环境下使用 Docker 部署 Seata 1.7.1 (图文教程)
Linux 环境下使用 Docker 部署 Seata 1.7.1 (图文教程)
|
Web App开发 前端开发 应用服务中间件
nginx实现请求转发
反向代理适用于很多场合,负载均衡是最普遍的用法。 nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。 nginx 反向代理官方文档: NGINX REVERSE PROXY 当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx 在80端口监听所有请求,并依据转发规则(比较常见的是以 URI 来转发)转发到对应的web服务器上。
3081 0
|
3月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
658 0
|
存储 人工智能 Java
【图文详解】基于Spring AI的旅游大师应用开发、多轮对话、文件持久化、拦截器实现
【图文详解】基于Spring AI的旅游大师应用开发、多轮对话、文件持久化、拦截器实现
611 0
|
Java API Spring
Spring Boot中的API版本控制
Spring Boot中的API版本控制
|
缓存 JavaScript 前端开发
Angular 应用打包和部署
Angular 应用打包和部署
363 58
|
JavaScript API 数据库
ant design vue + jeecgboot 实现本地上传视频及播放视频功能
ant design vue + jeecgboot 实现本地上传视频及播放视频功能
678 2
|
API 数据安全/隐私保护 开发者
软件版本的命名规则
软件版本的命名规则
1798 1
|
前端开发 JavaScript 开发工具
若依框架文档开发手册----开发中常用功能模块(上)
若依框架文档开发手册----开发中常用功能模块
1965 0