zoukankan      html  css  js  c++  java
  • Freemarker

    1、使用list进行遍历

    1.1 基本遍历:

    <#list students as info>
         ${info['id']}
         ${info['name']}
         ${info['age']}
    </#list><#list students as info>
        ${info.id}<br>
        ${info.name}<br>
        ${info.age}<br>
    </#list>

    其中students是变量名,它代表一个list。info是我起的别名,遍历的时候,它代表LIST中的一项。

    1.2 获取索引值:

    <#list students as info>
        ${info_index}
    </#list>

    索引值的获取是"别名_index"的形式。如果你起的别名是user那么就用“user_index”。
    需要说明的是索引值是从0开始的。

    1.3 检查有没有下一个元素:

    <#list students as info>            
        <#if info_has_next>
        
           有下一个元素
        <#else>
        
           没有下一个元素
        </#if>
    </#list>

    检查有没有下一个元素的形式是"别名_has_next",这个跟获取索引值是类似的。
    这个语法通常用来判断是不是最后一个元素。而且是配合if来使用。

    1.4 如果想获取list里有多少个元素,可以这么写

    ${students?size}

    students是list的变量名。这个可以单独使用,不需要配合<#list>。

    1.5 <#break/>可以跳出循环。

    <#list students as info>
       <#if info_index == 3>
         <#break/>
       </#if>
       ${info['id']}
       ${info['name']}
       ${info['age']}
    </#list>

    1.6 排序

    排序有三个命令 sort,sort_by,reverse,前两个表示启用排序,默认是升序。reverse表示的是降序。可以配合使用
    如果是基本数值,字符串日期,这么写

    <#list sequence?sort as item>  
        ...  
    </#list>  

    如果是对象的话,这么写

    <#list students?sort_by("age") as info>
       ${info['id']}
       ${info['name']}
       ${info['age']}
    </#list>

    这是按照年龄进行升序的意思

    如果我们想降序,可以配合reverse来用

    <#list students?sort_by("id")?reverse as info>
       ${info['id']}
       ${info['name']}
       ${info['age']}
    </#list>

    下面给出一个例子

     <#list students?sort_by("id")?reverse as info>
          <#if info_index == 3>
             <#break />
          </#if>
          <tr>
             <td>${info_index}</td>
             <td>
                <#if info_has_next><#else></#if>
              </td>
              <td>${students?size}  </td>
              <td>${info['id']}</td>
              <td>${info['name']}</td>
              <td>${info['age']}</td>
            </tr>
     </#list>

     2. if判断

    2.1 判断对象是否存在或者是否为null

    <#if user??>
       .......</#if>

    上面这段代码判断user??是否为null,如果不为null时才可以执行if里面的内容,为null时则不进到if里面

    2.2 判断对象是否存在或者是否为null,或者是否为空

    <#if user?? && user!="">
       .......
    </#if>

    上面是判断user对象如果存在,并且不为null,也不为空,才会进入带if里面

    如果后台没有传入user对象,前台也不会报错

    2.3 多条件判断

    <#if sex=='0'><#elseif sex == '1'><#else>
          保密
    </#if>

    3.给为null的值赋默认值,也可以避免对象为空的错误

    ①后台:

    model.put("password",null);

    前台

    ${password!"123"}   
    前台页面显示123   如果是${password}这样会报错
    如果password为null,就以默认值(“!”后的字符)显示。

    ②后台

    model.put("password","");

    前台

    ${password} 
     前台页面不会报错,显示为空
    ${password!"123"}
     前台页面不会报错,显示依然为空,而不是123

    4、<#include>

    <#include filename>
    <#include filename options>

    该标签用于导入文件。option包含下面2种属性:

    encoding=”GBK” 编码格式 
    parse=true 是否作为ftl语法解析,默认是true,false就是以文本方式引入.注意在ftl文件里布尔值都是直接赋值的如parse=true,而不是parse=”true”

    <#include "head.ftl">
    <#include "head.ftl" encoding="GBK">

    页面显示结果:

    这里是头部
    杩欓噷鏄�ご閮�
  • 相关阅读:
    mysql系列--基础知识
    微信开发(2)–获取access_token
    微信开发(1)–开发模式
    https协议 ssl协议以及证书生成
    ▲▲▲▲▲ Daodantou 小练习▲▲▲▲▲
    第十三章 模块[DDT书本学习 小甲鱼]【1】
    第十一章 类和对象[DDT书本学习 小甲鱼]【3】
    第十一章 类和对象[DDT书本学习 小甲鱼]【2】
    第十一章 类和对象[DDT书本学习 小甲鱼]【1】
    hexdump(b,step,sep,decimal) 和 server、client 端 [北极星]
  • 原文地址:https://www.cnblogs.com/jcjssl/p/9453743.html
Copyright © 2011-2022 走看看