在HTML代码中使用freemarker

1、freemarker中显示某对象的属性使用${user.name}.

但如果name为null,freemarker就会报错。如果需要判断对象是否为空:

<#if name??>.....</#if>

当然也可以通过设置默认值${name!''}来避免对象为空的错误。如果name为空,就以默认值(“!”后的字符)显示

对象user,name为user的属性的情况,user,name都有可能为空,那么可以写成${(user.name)!''},表示user或者name为null,都显示为空。

判断为空:<#if (user.name)??>……</#if>

2、freemarker中截取字符串-------------------------------------

类型一:
<#if item.contents??>
  <#if item.contents?length gt 7>
    ${item.contents?substring(0,3)}****${item.contents?substring(7,item.contents?length)}
  <#else>${item.contents!}
  </#if>
</#if>
类型二:
<#if item.contents??>
  <#if item.contents?length gt 7>
    ${item.contents?substring(0,7)}****
  <#else>${item.contents!}
  </#if>
</#if>

<#if item.createTime??>
  <#if item.createTime?length gt 0>
    ${item.createTime?substring(0,10)}
  <#else>${item.createTime!''}
  </#if>
</#if>

<div title="${item.title!''}">${item.title?substring(0,9)}...</div>

类型三:截取手机号的中间四位

 <#if phone??&&phone?length gt 7>${phone ? replace(phone ? substring(3,7),"****")}<#else>${phone!}</#if>

3、根据条件显示-------------------------------------
<td class="th18">
  <#if item.type?? && item.type =="0">天
  <#elseif item.type?? && item.type =="1">**
  <#elseif item.type?? && item.type =="2">**
  <#elseif item.type?? && item.type =="3">**
  <#elseif item.type?? && item.type =="4">**
  </#if>
</td>

4、freemark控制class样式-------------------------------------
<li class="biao-new <#if userConf??&&userConf.mothShortMark==1>active</#if>">

5、遍历  list  或者  page

<#if list  ?? && list  ?size gt 0>
  <#list channels as item>
    <option value="${item.id!}">${item.channelName!}</option>
  </#list>
</#if>

在HTML代码中使用freemarker的更多相关文章

  1. springboot中使用freemarker生成word文档并打包成zip下载(简历)

    一.设计出的简历模板图以及给的简历小图标切图         二.按照简历模板图新建简历word文件 :${字段名},同时将图片插入到word中,并将建好的word文件另存为xml文件:    三.直 ...

  2. JavaWeb开发中采用FreeMarker生成Excel表格

            最近做了一个需求,要求导出一个采购合同的Excel表格,这个表格样式比较多.由于是合同,这个Excel表格里面有好多格式要求,比如结尾处签字那部分就有格式要求.这里介绍种采用FreeM ...

  3. Java Web项目中使用Freemarker生成Word文档

    Web项目中生成Word文档的操作屡见不鲜.基于Java的解决方式也是非常多的,包含使用Jacob.Apache POI.Java2Word.iText等各种方式,事实上在从Office 2003開始 ...

  4. Python-Jenkins API使用 —— 在后端代码中操控Jenkins

    最近在工作中需要用到在后台代码中触发Jenkins任务的构建,于是想到Jenkins是否有一些已经封装好的API类库提供,用于处理跟Jenkins相关的操作.下面就简单介绍下我的发现. Linux C ...

  5. 在C#代码中应用Log4Net系列教程(附源代码)

    Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...

  6. “RazorEngine.Templating.TemplateCompilationException”类型的异常在 RazorEngine.NET4.0.dll 中发生,但未在用户代码中进行处理

    错误信息: "RazorEngine.Templating.TemplateCompilationException"类型的异常在 RazorEngine.NET4.0.dll 中 ...

  7. C#代码中实现两个表(DataTable)的关联查询(JOIN)

    之前通常都是使用SQL直接从数据库中取出表1和表2关联查询后的数据,只需要用一个JOIN就可以了,非常方便.近日遇到一种情况,两个表中的数据已经取到代码中,需要在代码中将这两个表关联起来,并得到它们横 ...

  8. 【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处

    (转自:http://blog.csdn.net/reille/article/details/7161942) 作者:reille 本博客网址:http://blog.csdn.net/reille ...

  9. 在C#代码中应用Log4Net(二)典型的使用方式

    不管用什么框架,学什么东西,最初的想法还不是尽快地用上这个框架,所以我们在这个章节还是不打算介绍具体配置节的应用,而是直接给出一个经典的使用样例,让你尽快上手.即使你对Log4Net的配置不熟悉也完全 ...

随机推荐

  1. shell中tr的用法

    转自http://blog.csdn.net/zhuying_linux/article/details/6825568 tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换.语 ...

  2. 2019.2.14 t1 最大公约数

    代码: #include <cstdio> #include <iostream> #include <cstring> #include <algorith ...

  3. TCP/IP——何时用UDP代替TCP

    UDP和TCP UDP和TCP都有其自身的特点,不同的应用场景和要求需要使用不同的协议来传输,那么何时我们可以用UDP代替TCP呢. UDP 的优点 UDP支持广播和多播,事实上如果应用程序使用广播或 ...

  4. paraview鼠标选择网格

    虽然可以根据ID选择网格,但是有时候需要选择可见面,直接鼠标比较方便,可以直接按一下键盘"S",这时候鼠标变成十字型,然后鼠标左键选择区域.

  5. python全栈开发_day11_作用域,函数嵌套和闭包

    一:作用域 1)什么是作用域 作用域是规定一个变量可以作用的范围,运行和销毁的范围 2)作用域的分类 1.内置作用域built_in:随着解释器的运行而产生,解释器运行的终止而销毁. 2.全局作用域g ...

  6. 用vue建新项目的过程---在工作中

    1.git clone 项目地址 2.如果没装vue-cli,就先装下vue-cli  (如果报错可能是没按管理员身份安装) 3.vue init webpack 项目名 4.安装项目依赖 npm i ...

  7. sql developer链接不上oracle 报 The Network Adapter could not establish the connection

    安装时候报 : Oracle 支持在具有 DHCP 分配的公共 IP 地址的系统上进行安装.但应使用静态 IP 地址来配置系统的主网络接口, 以便 Oracle 软件正常工作.有关在配置有 DHCP ...

  8. Android规划周期任务

    问题:应用总要周期性的执行某项任务,例如检查服务器上的更新或者提醒用户做某些事情. 解决方案:用AlarmManager来管理和执行任务.AlarmManager可用于计划未来的单次或重复操作,甚至在 ...

  9. orcale 之函数

    我们知道存储过程的调用是一条 PL/SQL 语句.那么对于一些表达式我们用什么呢?这里函数的功能就会体现出来了. 函数和过程在创建方式上有很多的类似地方,也是编译后放入内存中以供用户使用,只不过函数调 ...

  10. Software Architecture Pattern(Mark Richards)笔记

    软件架构模式 缺少规范架构的程序通常会变得紧耦合.脆弱.难以更改,缺少清晰的发展方向和愿景.这本小书用50多页介绍了常用的5种常见架构模式,相信不管是大牛还是萌新都会有所收获,特别是对我这种偏爱系统设 ...