当前位置: 首页 > news >正文

freemarker反向取数_freemarker 取值(插值)(转)

Java数据模型

1)基本数据类型取值

八种基本的java类型:byte、short、int、long;float,double;char;boolean

对应的封装类型:Byte、Short、Integer、Long、Float、Double、String、Boolean

2)封装类型:User 对象

3)集合类型:List、Map

如何遍历集合类型List、遍历Map类型获取Key和Value

项目中数据模型定义、取值

1、基本数据类型取值

Java数据模型定义

ModelAndViewmv=newModelAndView(

"cp1");mv.addObject("intVar",100);mv.addObject("longVar",100000L);mv.addObject("stringVar","我是字符串");mv.addObject("doubleVar",3.45d);mv.addObject("booleanVar",Boolean.TRUE);mv.addObject("dateVar",newDate());

freemarker模板取值(插值)

整数:${intVar}长整数:${longVar}字符串:${stringVar}双精度:${doubleVar}布尔值:${booleanVar}//配置文件中的boolean_format的作用 yes,no日期:${dateVar?string('yyyy-MM-dd HH:mm:ss')}//配置文件中date_format的作用;(java.sql.date)

${booleanVar?string('yes','no')}//boolean类型格式化

判断不为空

${abc??}${abc?exists}${abc!0}

【FreeMarker】判断是否为空

(1)判断Map数据是否为空

0)>

${key}:${master[key]!}

#list>

#if>

(2)判断List数据是否为空

${table}

#list>

#if>

(3)解决为空的问题:

A:加个感叹号可以解决为空的问题

${(emp.group)!}

B:加上括号,感叹号解决对象导航为空的问题

${(emp.group.name)!"group为空或者name为空"}

C:感叹号还可以解决未定义为空的问题-->

${(a.b)!("a.b未定义")}

不为空

为空

#if>

${(a.b)???string}

assign语法

2、对象取值

java模型数据定义

Useruser=newUser();user.setName("freemarker");mv.addObject("userObj",user);

freemarker模板取值(插值)

${userObj.name!}//点语法,${(userObj.name)!}//可以结合()使用

输出HTML原文

${(userObj.brief)!?html}

3、集合取值

Java模型数据定义

Listlist=newArrayList();list.add("java");list.add("python");list.add("nodejs");mv.addObject("myList",list);Mapmap=newHashMap();map.put("java","你好Java");map.put("python","你好python");map.put("nodejs","你好nodejs");mv.addObject("map",map);

freemarker模板取值(插值)

集合List(可以通过下标取值)${item!}
#list>

集合 map(直接取某个key的值)

${key} : ${map[key]}
#list>

相关文章:

  • miui 谷歌框架_谷歌和高通正式联手,加强安卓系统掌控,华为:鸿蒙正全面超越...
  • python 随机打乱列表_python打乱列表
  • 图片画圈画箭头用什么软件_什么软件可以在编辑图片中画圈圈,如裁图时需要特..._网络编辑_帮考网...
  • 0 win10重装partition_gpt分区无法安装win10的根本原因
  • python csv库下载_Python标准库--csv模块
  • kafka身份认证 maxwell_python – kafka身份验证和授权
  • python类的封装是什么意思_Python中什么是面向对象-封装
  • 瑞银监控机器人组装法_“机器人革命”来了!瑞银计划年内再扩充400台自动化机器人...
  • laravel 控制器中使用中间件_热式气体质量流量控制器在流量监测和气压测试中的使用情况...
  • linux vim 添加注释_【Linux】Vim编辑器-批量注释与反注释
  • arduino判断是否连接串口_Arduino-串口函数Serial
  • 大数据管家abm 计算机任务监控_大数据岗位要求之大数据运维
  • 转232 乱码_rs485转rs232串口转换器应用介绍及常见故障分析
  • 凯酷84数字区切换_发现起亚,向年轻出发K5凯酷烟台试驾会!
  • app不同角色不同界面_如何实现GUI中不同界面之间的切换
  • 【Linux系统编程】快速查找errno错误码信息
  • Android优雅地处理按钮重复点击
  • const let
  • JAVA SE 6 GC调优笔记
  • java8-模拟hadoop
  • Java多线程(4):使用线程池执行定时任务
  • js正则,这点儿就够用了
  • React-redux的原理以及使用
  • Redis在Web项目中的应用与实践
  • 翻译--Thinking in React
  • 怎样选择前端框架
  • ​Spring Boot 分片上传文件
  • !!Dom4j 学习笔记
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #QT项目实战(天气预报)
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (6)添加vue-cookie
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (vue)页面文件上传获取:action地址
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)h264中avc和flv数据的解析
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .Net - 类的介绍
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET的微型Web框架 Nancy
  • .net下的富文本编辑器FCKeditor的配置方法
  • @Bean有哪些属性
  • [.net]官方水晶报表的使用以演示下载
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [CC-FNCS]Chef and Churu
  • [CF703D]Mishka and Interesting sum/[BZOJ5476]位运算
  • [exgcd] Jzoj P1158 荒岛野人