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 取值(插值)(转)的更多相关文章

  1. vue页面开发遇到的坑,都是泪!src属性,freemarker取值

    总结下今天做的看图识别药材名的功能所遇到的问题以及解决措施. 效果图如下 对应的连接 http://www.xinghengedu.com/getTenActivityQuestions.jspx 可 ...

  2. freemarker 分页取值

    <#if pagination??&&pagination.list??> <#list pagination.list as video> <td al ...

  3. 【freemaker】之循环,判断,对象取值

    entity: public class Employee { private Integer id; private String name; private Integer age; privat ...

  4. 如何解决流程开发中SheetRadioButtonList页面取值问题

    分享一个常见的取值问题. 应用场景: SheetRadioButtonList控件,点击其中一项执行事件操作.如果是页面加载的情况下,值就无法取到. 具体原因如下: 我给SheetRadioButto ...

  5. jQuery radio的取值与赋值

    取值: $("input[name='radioName']:checked").val(); 赋值: $("input[name='radioName'][value= ...

  6. python通过函数改变变量取值

    严格讲应该是"通过函数调用,改变引用对象".python中,要区分"变量名"和"对象" 如果是类的对象,是引用类型的,那么可以通过函数调用, ...

  7. jsf初学selectOneMenu 绑定与取值

    jsf 的selectOneMenu 最后生成的<select>标签.这里涉及到一个binding 起初一直不知道是干嘛的,后来参考了其他文章.就相当于在asp.net 中如:<as ...

  8. CYQ.Data 快速开发之UI(赋值、取值、绑定)原理

    昨夜园子猴子问了几个我CYQ.Data使用的小问题,经过简单解答后,他表示“妈妈再也不用担心我的学习",并于事后以资鼓励,希望这框架越走越好. 除了技术上的交流,双方在生活,S上面的问题上也 ...

  9. EditText的inputType常用取值

    最近经过实际试验,总结了InputType几个常用取值表示的含义: 1.none, text, textVisiblePassword: 无任何输入限制 2.textMultiLine: 允许多行输入 ...

随机推荐

  1. 进程外Session---数据库Session的配置

    怎么将Session记录到数据库中呢? 其实微软已经为我们设置好了.只要我们简单的配置一下就行了. 当然也要在 “我的电脑” 鼠标右键--->管理--->服务和应用程序----> 服 ...

  2. 如何使用Tunnel SDK上传/下载MaxCompute复杂类型数据

    基于Tunnel SDK如何上传复杂类型数据到MaxCompute?首先介绍一下MaxCompute复杂数据类型: 复杂数据类型 MaxCompute采用基于ODPS2.0的SQL引擎,丰富了对复杂数 ...

  3. CF1140F - Extending Set of Points

    题意:对于点集S,定义函数F(S)为对S不断扩展到不能扩展时S的点数.一次扩展定义为如果有一个平行于坐标轴的矩形的三个点在S中,则第四个点加入S. 动态在S中加点删点,每次操作完后求F(S)的值. 解 ...

  4. Activiti实战03_Hello World

    Hello World如此经典,以至于几乎学习没一门新的技术都是从Hello World开始,可能意味着开启了新世界的大门吧,接下来就让我们一起步入到Activiti的世界中吧! 本文所使用开发环境 ...

  5. 爬虫(三)通过Selenium + Headless Chrome爬取动态网页

    一.Selenium Selenium是一个用于Web应用程序测试的工具,它可以在各种浏览器中运行,包括Chrome,Safari,Firefox 等主流界面式浏览器. 我们可以直接用pip inst ...

  6. LINUX对超级用户和普通用户的理解

    什么是超级用户 在所有Linux系统中,系统都是通过UID来区分用户权限级别的,而UID为0的用户被系统约定为是具有超级权限.超级用户具有在系统约定的最高权限满园内操作,所以说超级用户可以完成系统管理 ...

  7. 单元测试神器Mockito

    Mockit是一种mock工具/框架.mock可以模拟各种各样的对象,从而代替真正的对象做出希望的响应 1.工程中引入Mockito #以gradle的方式为例 testCompile("o ...

  8. 斐波那契字符串_KMP

    前言:通过这道题恶补了一下字符串匹配的知识 思路:首先就是求出菲波那切字符串,这个很简单,但是要注意递归超时的问题,可以考虑加上备忘录,或者用递推法,接下来就是匹配问题了,常规的BF会超时,所以要用K ...

  9. php传入参数

    项目中时常会使用php编写脚本,进行一些统计与批量更新的需求需要进行操作其中使用的方式主要是getopt函数,写法如下 <?php $opt = getopt('m:n:'); $value_m ...

  10. 一个页面多个bootstrip轮播以及一个页面多个swiper轮播 冲突问题

    Bootstript轮播冲突 解决方法: 使用不同的id <div id="myCarousel1" class="carousel slide"> ...