码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • springboot视图渲染技术


    目录

    一、Freemarker简介及入门

    二、Freemarker语法

     1、取值

    1.1默认值

    1.2 对null值进行判断

    2、条件 

    3、循环

    4、include

    5、 局部变量(assign)/全局变量(global)


    一、Freemarker简介及入门

    学习网址:什么是 FreeMarker? - FreeMarker 中文官方参考手册

    二、Freemarker语法

    indexController.java

    1. package com.cxy.testspboot04.web;
    2. import com.cxy.testspboot04.entity.User;
    3. import org.springframework.stereotype.Controller;
    4. import org.springframework.ui.Model;
    5. import org.springframework.web.bind.annotation.GetMapping;
    6. import java.util.ArrayList;
    7. import java.util.List;
    8. @Controller
    9. public class indexController {
    10. @GetMapping("/")
    11. public String index(Model model) {
    12. System.out.println("come in............");
    13. model.addAttribute("uname", "小刘");
    14. model.addAttribute("sex", "girl");
    15. List lst = new ArrayList<>();
    16. lst.add(new User(1, "zs"));
    17. lst.add(new User(2, "ls"));
    18. lst.add(new User(3, "ww"));
    19. model.addAttribute("lst",lst);
    20. model.addAttribute("arr", new Integer[]{5, 6, 7, 8, 9});
    21. return "index";
    22. }
    23. }

     1、取值

    1.1默认值

    1. <h2>1.取值h2>
    2. <h3>1.1. 提供默认值h3>
    3. <#--报错-->
    4. <#--${uname} -->
    5. <#--不报错,但是页面无内容-->
    6. <#--${uname !}-->
    7. <#--给值设置一个默认值-->
    8. ${uname! '无名'}

    1.2 对null值进行判断

    1. <h3>1.2. 对null值先进行判断h3>
    2. <p>1)exists用在逻辑判断;p>
    3. <#if uname?exists>
    4. ${uname}
    5. <br>
    6. <p>2)??是判断对象是否为空p>
    7. <#if uname??>
    8. ${uname}
    9. <br>
    10. <p>3)if_exists用来打印东西p>
    11. ${uname?if_exists}
    12. <br>

    2、条件 

    1. <h3>2.条件h3>
    2. <#if sex=='nv'>
    3. 女
    4. <#elseif sex='nan'>
    5. 男
    6. <#else>
    7. 未知
    8. <br>

    3、循环

    1. <h3>3.循环h3>
    2. <p>1)取出数组中的元素p>
    3. <#list arr as a>
    4. ${a}==
    5. <br>
    6. <p>2)取出集合中的对象(注:访问的类要被public所修饰)p>
    7. <#list lst as item>
    8. ${item.id} : ${item.name} <br>

    4、include

    1. <h3>4 includeh3>
    2. <#include "/common.ftl" >

    common.ftl  

    1. <#assign ctx>
    2. ${springMacroRequestContext.contextPath}
    3. <#global ctx2>
    4. ${springMacroRequestContext.contextPath}

    5、 局部变量(assign)/全局变量(global)

    1. <h3>5 局部变量(assign)/全局变量(global)h3>
    2. ${ctx}:${ctx2}

  • 相关阅读:
    ORACLE数据库介绍
    Luckysheet + Exceljs:H5实现Excel在线编辑、导入、导出及上传服务器的示例代码(完整版demo)
    第85步 时间序列建模实战:CNN回归建模
    Android Studio无法连接夜神模拟器的解决方案
    概率论-古典概型
    NOSQL Redis 数据持久化
    渲染json数据算法
    客户端Socket传输
    cdh6.x 集成spark-sql
    BAT031:按列表名单将路径a下的文件夹批量剪切到路径b
  • 原文地址:https://blog.csdn.net/m0_62528678/article/details/127957624
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号