SpringBoot整合FreeMaker

一、FreeMaker的基本语法

普通取值:
${var}

对null或者不存在的对象取值,为空时设置默认值,
${var!“默认值”}


boolean类型:
${booleanVar?String(“true”,“false”)}


封装对象:
${对象.属性}


时间类型:
${date?String(“yyyy-MM-dd”)}


HTML转译:
$(var?html)-------携带html标签转译


定义变量:
<#assign num = 10/>
$(num*10) = 100


list集合取值:
<#list userList as item>
 ${item}
</#list>


对Map集合取值
<#list map?keys as key>
 ${key}: ${map[key]}
</#list>


if-else判断
<#if 条件>
  输出
 <#else>
  输出
</#if>

if-else-if级联判断
<#if 条件1>
  输出
 <#elseif 条件2>
  输出
 <#elseif 条件3>
  输出
 <#else>
  输出
</#if>


switch语句
<#switch var>
 <#case 条件1>
  输出
 <#break>
 <#case 条件2>
  输出
 <#break>
 <#default>
  输出
</#switch>


常用内建函数、macro(宏指令)、function(函数指令):
(1) 常用内建函数
处理字符串:
substring 截取字符串,包头不包尾(下标)
cap_first 第一个字母大写
end_with 以什么字母结尾
contains 是否包含目标字符串
date datetime time 转换成日期格式
starts_with 以什么字母开头
index_of 返回某个指定的字符串值在字符串中首次出现的位置(下标)
last_index_of 获取指定字符出现的最后位置(下标)
split 分隔
trim 去两端空格
处理数字:
string
x?string(“0.##”) 变成小数点后几位
round 四舍五入
floor 去掉小数点
ceiling 近1 变成整数
处理list:
first: 取List值第一个值
last: 取List值最后一个值
seq_contains: 是否包含指定字符
seq_index_of: 指定字符所在位置
size: 集合大小
reverse: 集合倒序排列
sort: 对集合进行排序
sort_by: 根据某一个属性排序
chunk: 分块处理
其他:
is_string: 是否为字符类型
is_number: 是否为整数类型
is_method: 是否为方法
(): 判断整个变量
has_content: 判断对象是否为空或不存在
eval: 求值
(2) macro(宏指令)
调用:<@macro_name param />
语法:<#macro 变量名 参数>
<#nested/>
</#macro>
(3) function(函数指令)
调用:${function_name(param)}
语法:<#function 变量名 参数>
<#return>
</#function>


二、SpringBoot整合FreeMaker

1、添加依赖

<!-- springboot整合freemarker -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

2、添加配置文件信息

application-dev.yml中添加(下面这些配置多半是默认的,之所以写出来是因为:根具需求更改)

spring:
  freemarker:
    suffix: .ftl                                 # 设置模板后缀名
    content-type: text/html                      # 设置文档类型
    charset: UTF-8                               # 设置页面编码格式
    cache: false                                 # 设置页面缓存
    template-loader-path: classpath:/templates   # 设置ftl文件路径
  mvc:                      
    static-path-pattern: /static         # 设置静态文件路径,js,css等

3、在temlates目录下创建一个FreeMaker模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>userlist</title>
</head>
<body>
第一个FreeMaker模板页面
</body>
</html>

4、打开FreeMaker页面

controller.java

/**
 * 打开userlist页面
 */
@RequestMapping("userlist")
public String openUserList(){
    return "userlist";
}

在这里插入图片描述

三、SpringBoot结合FreeMaker完成简易的增删改查

1、查询

controller.java

/**
 * 查询User列表
 */
@RequestMapping("selectuser")
public String selectUser(ModelMap map){
    List userList = userService.selectUser();
    map.put("userList",userList);
    return "userlist";
}

service.java

@Override
public List selectUser() {
     return userMapper.selectUser();
 }

mapper.xml

<select id="selectUser" resultType="user">
   select * from t_user
</select>

userlist.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>userlist</title>
</head>
<body>
    <table border = "1">
        <tr>
            <td>编号</td>
            <td>名称</td>
            <td>年龄</td>
            <td>操作</td>
        </tr>
        <#list userList as user>
            <tr>
                <td>${user.usId}</td>
                <td>${user.usName}</td>
                <td>${user.usAge}</td>
                <td>
                    <a href = "">修改</a>
                    <a href = "">删除</a>
                </td>
            </tr>
        </#list>
    </table>

    <a href = "addpage">新增</a>

</body>
</html>

在这里插入图片描述

2、增加

controller.java

/**
* 打开新增页面
 */
@RequestMapping("addpage")
public String openAddPage(){
    return "adduser";
}

/**
 * 新增User
 */
@RequestMapping("addUser")
public String addUser(User user){
    userService.addUser(user);
    return "redirect:selectuser";
}

service.java

	/**
     * 新增
     * @param user
     */
    @Override
    public void addUser(User user) {
        userMapper.addUser(user);
    }

mapper.xml

	<insert id="addUser">
        insert into t_user values(null,#{usName},#{usAge})
    </insert>

在这里插入图片描述
在这里插入图片描述
哎,不写了,回到了刚接触java的感觉,
应该使用前端框架的,再不济也该引入个jquary的,打脸!!!!!!

猜你喜欢

转载自blog.csdn.net/weixin_44030218/article/details/86777664
今日推荐