springboot视图渲染技术

news2024/9/20 17:47:48

目录

一、Freemarker简介及入门

二、Freemarker语法

 1、取值

1.1默认值

1.2 对null值进行判断

2、条件 

3、循环

4、include

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


一、Freemarker简介及入门

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

二、Freemarker语法

indexController.java

package com.cxy.testspboot04.web;

import com.cxy.testspboot04.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.ArrayList;
import java.util.List;


@Controller
public class indexController {
    @GetMapping("/")
    public String index(Model model) {
        System.out.println("come in............");
        model.addAttribute("uname", "小刘");
        model.addAttribute("sex", "girl");
        List<User> lst = new ArrayList<>();
        lst.add(new User(1, "zs"));
        lst.add(new User(2, "ls"));
        lst.add(new User(3, "ww"));

        model.addAttribute("lst",lst);
        model.addAttribute("arr", new Integer[]{5, 6, 7, 8, 9});
        return "index";
    }
}

 1、取值

1.1默认值

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

1.2 对null值进行判断

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

2、条件 

<h3>2.条件</h3>
<#if sex=='nv'>
    女
<#elseif sex='nan'>
    男
<#else>
    未知
</#if>
<br>

3、循环

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

4、include

<h3>4 include</h3>
<#include "/common.ftl" >

common.ftl  

<#assign ctx>
    ${springMacroRequestContext.contextPath}
</#assign>
<#global ctx2>
    ${springMacroRequestContext.contextPath}
</#global>

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22100.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022强网拟态pwn-webheap

2022强网拟态pwn-webheap 这题的逻辑是一开始笔者硬逆给逆出来了&#xff0c;但是后面在Ex师傅的点播下成功的在github上找到了这个的原生项目 https://github.com/google/libnop 在审计的过程中发现了至关重要的信息&#xff0c;发现和逆向的格式一样的东西&#xff0c;就是…

BCN-PEG2-Mal,BCN-OH,endo-BCN-PEG2-BiotinBCN几种衍生物的特点

BCN-PEG 是一类具有双环[6.1.0]壬炔的 PEG 接头。它用于叠氮化物反应性无铜点击化学。BCN在没有催化剂的情况下很容易与叠氮官能化化合物或生物分子反应形成稳定的三唑键&#xff0c;PEG间隔物增加了所得化合物的水溶性。今天这一章西安凯新生物科技有限公司​主要为大家分享BC…

多段曲线控温从Simulink仿真到PLC控制实现

多段曲线温度控制,专栏有系列文章和完整源代码,大家可以自行搜索。链接如下: 博途PLC 1200/1500PLC多段曲线控温FB(支持40段控温曲线、段曲线搜索、暂停、跳段等功能)_RXXW_Dor的博客-CSDN博客多段控温曲线之前专栏的其它文章也有所讲解,大家可以参看下面这篇专栏博途1200…

Get CLI - 强大的项目管理 GetX 工具

Get CLI - 强大的项目管理 GetX 工具 https://shirsh94.medium.com/get-cli-powerful-getx-tool-for-project-management-bdf54572d91f 前言 一个来自 Getx 的工具可以帮助你快速的建立项目&#xff0c;页面和视图。 大家好&#xff0c;在本文中&#xff0c;我将讨论 get CLI 工…

PTA题目 奇偶分家

给定N个正整数&#xff0c;请统计奇数和偶数各有多少个&#xff1f; 输入格式&#xff1a; 输入第一行给出一个正整N&#xff08;≤1000&#xff09;&#xff1b;第2行给出N个非负整数&#xff0c;以空格分隔。 输出格式&#xff1a; 在一行中先后输出奇数的个数、偶数的个…

深度学习中常见概念(收敛、优化器、学习率等)

收敛 打个简单的比方&#xff0c;训练网络模型&#xff0c;就好比解方程&#xff0c;为了得到这个方程的极值点&#xff0c;训练的过程就好比是找准一个方向&#xff0c;不断的朝这个方向靠近,使得方程的值不断减小&#xff0c;最终达到极值点&#xff0c;而不收敛&#xff0c…

微型计算机基础(常用术语,总线,系统组成)

目录 微型计算机常用术语 计算机系统 基本组成图​编辑 Cache&#xff08;内存和CPU之间&#xff09; 虚存&#xff08;内存和外存之间 &#xff09; CPU是微机的核心部件&#xff0c;具有运算和控制功能 总线 数据中线DB&#xff08;Data Bus&#xff09; &#xff0…

kubernetes集群配置默认存储类(nfs)

文章目录概述安装nfs服务端node节点上安装启动nfs配置StorageClass创建Deployment创建ServiceAccount创建StorageClass对象创建资源对象常见问题参考文档概述 StorageClass 为管理员提供了描述存储 “类” 的方法。 不同的类型可能会映射到不同的服务质量等级或备份策略&#x…

钙通道阻滞剂/拮抗剂的应用 | MedChemExpress

我们都知道钙、钾、钠离子对于维持个体内环境的重要性&#xff0c;离子通道一直是个有趣而复杂的话题。它们就像为某种物质专属定制的“门”或 VIP 通道&#xff0c;不仅分类繁多&#xff0c;还有着严密的“门控”机制。每个细胞都像一个电池&#xff0c;正常状态下&#xff0c…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.10 jetcache 本地缓存方案

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.10 jetcache 本地缓存方案5.10.1 使用 jetcache 实…

【Java高级】一篇文章带你学会什么是注解

目录 注解概述 | Java内置的三个注解 Deprecated Override SuppressWarnings | 元注解 Target Retention&#xff08;注解生命周期&#xff09; Documented Inherited Repeatable&#xff08;JDK1.8&#xff09; | 自定义注解 自定义注解的概述 自定义注解的步骤…

货币政策传导与货币政策调控-中国视角下的宏观经济

货币政策传导与货币政策调控-潘登同学的宏观经济学笔记 文章目录货币政策传导与货币政策调控-潘登同学的宏观经济学笔记货币传导路径货币是银行的负债——货币的“形而下”定义贷款创造存款货币乘数货币就是记忆&#xff08;money is memory&#xff09;——货币的“形而上”定…

libevent库

libevent介绍 1 事件驱动, 高性能, 轻量级, 专注于网络 2 源代码精炼, 易读 3 跨平台 4 支持多种I/O多路复用技术, 如epoll select poll等 5 支持I/O和信号等事件 libevent的核心实现: 在linux上, 其实质就是epoll反应堆. libevent是事件驱动, epoll反应堆也是事件驱动, 当要…

硬件基础 -- D/A数字模拟信号

D/A 需要数位模拟开关 如果开关打卡&#xff0c;则此位电压参与运算 如果开关关闭&#xff0c;则此位电压0V参与运算 转换过程中需要将数字数字量锁存 转换过程 模拟量转数字量需要比较器 数字量转模拟量需要运放 #mermaid-svg-wJVhc3DQ619gtYuZ {font-family:"trebuchet …

【计算机毕业设计】6.超市仓库管理系统+vue

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 基于B/S的超市进销存管理系统的设计与实现 摘 要&#xff1a;开发本超市进销存管理系统的主要目标是方便企业对商品、客户和员工信息的实时掌控&#xff0c;提高企业的工作效率。本系统是采用java开发的一个基于B/S…

渗透测试——基于SQL注入拿到webshell

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座右…

spring整合struts2

因为最近工作的需要不得不学习struts2&#xff0c;整理了一下spring整合struts2的过程 需要详细了解struts2的朋友可以自行百度&#xff0c;这里只是简单的讲述如何使用 我是用的是idea进行项目构建的&#xff0c;eclipse的话可以自己百度一下 struts的官网&#xff1a;https:…

PTA题目 阶梯电价

为了提倡居民节约用电&#xff0c;某省电力公司执行“阶梯电价”&#xff0c;安装一户一表的居民用户电价分为两个“阶梯”&#xff1a;月用电量50千瓦时&#xff08;含50千瓦时&#xff09;以内的&#xff0c;电价为0.53元/千瓦时&#xff1b;超过50千瓦时的&#xff0c;超出部…

前缀和【一维前缀和与二维前缀和】

全文目录&#x1f600; 一维前缀和&#x1f914; 构建一维前缀和数组&#x1f635;‍&#x1f4ab; 子序列的和&#x1f600; 二维前缀和&#x1f914; 构建二维前缀和数组&#x1f635;‍&#x1f4ab; 子矩阵的和&#x1f600; 一维前缀和 一维前缀和很简单&#xff0c;就是…

[附源码]java毕业设计铁路法院数字档案管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…