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数据模型定义
ModelAndView mv = new ModelAndView(
"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", new Date());
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数据是否为空
<#ifmaster??&&(master?size>0)>
<#list master?keys askey>
<span>${key}:${master[key]!}</span>
</#list>
</#if>
(2)判断List数据是否为空
<#if tables?exists>
<#listtables as table>
${table}
</#list>
</#if>
(3)解决为空的问题:
A:加个感叹号可以解决为空的问题
${(emp.group)!}
B:加上括号,感叹号解决对象导航为空的问题
${(emp.group.name)!"group为空或者name为空"}
C:感叹号还可以解决未定义为空的问题-->
${(a.b)!("a.b未定义")}
<#--(a.b)??判断a.b是否为空-->
<#if (a.b)??>
不为空
<#else>
为空
</#if>
<br/>
${(a.b)???string}
assign语法
<#assign a='hello' />
<#assign a=100 + 200 />
2、对象取值
java模型数据定义
User user = new User();
user.setName("freemarker");
mv.addObject("userObj", user);
freemarker模板取值(插值)
${userObj.name!}//点语法,
${(userObj.name)!}//可以结合()使用
输出HTML原文
${(userObj.brief)!?html}
3、集合取值
Java模型数据定义
List<String> list = new ArrayList<String>();
list.add("java");
list.add("python");
list.add("nodejs");
mv.addObject("myList", list); Map<String,String> map = new HashMap<String,String>();
map.put("java", "你好Java");
map.put("python", "你好python");
map.put("nodejs", "你好nodejs");
mv.addObject("map",map);
freemarker模板取值(插值)
集合 List (可以通过下标取值)
<#list myList as item>
${item!}<br/>
</#list> 集合 map(直接取某个key的值)
<#list map?keys as key>
${key} : ${map[key]}<br/>
</#list>
freemarker 取值(插值)(转)的更多相关文章
- vue页面开发遇到的坑,都是泪!src属性,freemarker取值
总结下今天做的看图识别药材名的功能所遇到的问题以及解决措施. 效果图如下 对应的连接 http://www.xinghengedu.com/getTenActivityQuestions.jspx 可 ...
- freemarker 分页取值
<#if pagination??&&pagination.list??> <#list pagination.list as video> <td al ...
- 【freemaker】之循环,判断,对象取值
entity: public class Employee { private Integer id; private String name; private Integer age; privat ...
- 如何解决流程开发中SheetRadioButtonList页面取值问题
分享一个常见的取值问题. 应用场景: SheetRadioButtonList控件,点击其中一项执行事件操作.如果是页面加载的情况下,值就无法取到. 具体原因如下: 我给SheetRadioButto ...
- jQuery radio的取值与赋值
取值: $("input[name='radioName']:checked").val(); 赋值: $("input[name='radioName'][value= ...
- python通过函数改变变量取值
严格讲应该是"通过函数调用,改变引用对象".python中,要区分"变量名"和"对象" 如果是类的对象,是引用类型的,那么可以通过函数调用, ...
- jsf初学selectOneMenu 绑定与取值
jsf 的selectOneMenu 最后生成的<select>标签.这里涉及到一个binding 起初一直不知道是干嘛的,后来参考了其他文章.就相当于在asp.net 中如:<as ...
- CYQ.Data 快速开发之UI(赋值、取值、绑定)原理
昨夜园子猴子问了几个我CYQ.Data使用的小问题,经过简单解答后,他表示“妈妈再也不用担心我的学习",并于事后以资鼓励,希望这框架越走越好. 除了技术上的交流,双方在生活,S上面的问题上也 ...
- EditText的inputType常用取值
最近经过实际试验,总结了InputType几个常用取值表示的含义: 1.none, text, textVisiblePassword: 无任何输入限制 2.textMultiLine: 允许多行输入 ...
随机推荐
- python随机生成图片
#-*-coding:utf-8-*- import tensorflow as tf import numpy as np import cv2 image = tf.random_uniform( ...
- 两队列模拟一个栈,python实现
python实现两个队列模拟一个栈: class Queue(object): def __init__(self): self.stack1=[] self.stack2=[] def enqueu ...
- extern关键字及C\C++相互调用
extern关键字主要修饰变量或函数,表示该函数可以跨文件访问,或者表明该变量在其他文件定义,在此处引用. 1.extern修饰变量 (1)如果某变量int m在a.c中定义声明,则其他b.c文件访问 ...
- Django项目:CMDB(服务器硬件资产自动采集系统)--05--05CMDB采集硬件数据的插件
#__init__.py # ————————05CMDB采集硬件数据的插件———————— from config import settings import importlib # —————— ...
- css 实现单行以及多行文本溢出显示省略号
如果实现单行文本的溢出显示省略号大家都知道用text-overflow:ellipsis属性来,当然还需要加上宽度width属性. 实现方法: ``` overflow: hidden; text-o ...
- 利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
这篇文章主要介绍了利用PHP获取访客IP.地区位置.浏览器及来源页面等信息的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考借鉴价值,需要的朋友们下面来一起看看吧. 前言 本文中 ...
- 从web.xml入手分析jeecms配置文件
web.xml文件是web系统的核心配置文件,里面的所有配置都会加载的运行时的web容器,从她可以了解到整个web项目的配置情况.jeecms的所有配置文件都在config文件夹下面,通过web. ...
- Linux下ps -ef和ps aux的区别及格式详解-转
原文:https://www.linuxidc.com/Linux/2016-07/133515.htm Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux.这两个到底有什么区 ...
- docker启动redis设置密码
docker run --name picker-redis -p 6379:6379 -d redis --requirepass "认证密码"
- 在window下远程虚拟机(centos)hadoop运行mapreduce程序
(注:虽然连接成功但是还是执行不了.以后有时间再解决吧 看到的人别参考仅作个人笔记)先mark下 1.首先在window下载好一个eclipse.和拷贝好linux里面hadoop版本对应的插件(我是 ...