zoukankan      html  css  js  c++  java
  • Java模版引擎之Freemarker

    博客已迁移到CSDN《https://blog.csdn.net/qq_33375499

    Java模版引擎之Freemarker

    freemarker是一款模版引擎,是一种基于模版生成静态文件的通用工具,它是为Java程序员提供的一个类库,它不是面向最终用户的,而是为程序员提供了一款可以嵌入他们开发产品的应用程序。

     1. 插值

      1.1 常用${var}语法进行取值

      1.2 null、不存在对象取值${var!’设置默认值’}

      1.3 取包装对象的值,通过“点”语法:${user.name}

      1.4 取值的时候进行计算、赋值:

        <#assign str=’我是自定义值’ />

        <span>${‘输出:’ + str}</span>

      1.5 Date类型格式${date?String(yyyy-MM-dd‘’)}

      1.6 转义HTML内容:${var?html}

    2. 逻辑指定:ifswitch

    2.1 if

    <#if var == ‘str1’>
        var = ‘str1’
    <#else>
       var != ‘str1’
    </#if>

     

    <#if var ==  ‘str1’>
        var = ‘str1’
    <#elseif var ==  ’str2’>
        var != ‘str2’
    <#else>
        var != ‘str1’
    </#if>

      用<#if var??><#if>  <#if var?exite><#if>  判断变量是否存在

    2.2 switch

    <#switch var>
        <#case 1>
            case1
            <#break>
        <default>
            other
    </#switch>    

    3. 集合遍历

      3.1 list遍历

        <#list myList as item>

          下标:${item_index}

          值:${item}

        </#list>

      3.2 map遍历

        <#list myMap?keys as key>

          ${key} : ${map[key]}

        </#list>

    4. string基本操作指令

      ${str?substring(5,8)}:截取,取头不取尾

      ${str?length}:获取长度

      ${str?upper_case}:全部转为大写

      ${str?lower_case}:全部转为小写

      ${str?index_of(‘xx’)}:查找子串第一次出现的位置

      ${str?last_index_of(‘xx’)}:查找子串最后一次出现的位置

      ${str?replace(‘a’,’xx’)}:替换

    5. 自定义函数(继承TemplateMethodModelEx接口)

      5.1 创建自定义函数类

    public class TemplateMethd implements TemplateMethodModelEx {
        @Override
        public Object exec(List list) throws TemplateModelException {
            // 获取参数
            SimpleSequence simpleSequence = (SimpleSequence) list.get(0);
            List<BigDecimal> list1 = simpleSequence.toList();
            Collections.sort(list1, (a, b) -> { return a.intValue() - b.intValue(); });
            return list1;
        }
    }

      5.2 将自定义函数对象传到模版中

    modelAndView.setViewName("index");
    modelAndView.addObject("sort_int_list", new TemplateMethd());
    return modelAndView;

      5.3 在模版中使用

    <#assign myList=[1,4,5,2,3,7,5,9,0] />
    <#list sort_int_list(myList) as item>
        ${item},
    </#list>

    6. List的指令

      6.1 排序

        <#list myList?sort as item>

          ${item_index} : ${item}

        </#list>

      6.2 反转

        <#list myList?reverse as item>

          ${item_index} : ${item}

        </#list>

      6.3 长度

        ${myList.size}

    7. Freemarker内建函数

      7.1 处理字符串内建函数

        substring:字符串截取

        cap_first:首字母大写

        starts_with:是否以子串开始

        ends_with:是否以子串结尾

        index_of:查找子串第一次出现下标

        last_index_of:查找子串最后一次出现下标

        split:分隔字符串

        trim:去首位空格

        contains:是否包含子串

        date/datetime/time:字符串转换为日期格式

      7.2 处理数字的内建函数

        string:转为字符串

        x?string(“0.##”):转为小数点

        round:四舍五入

        floor:四舍五入

        ceiling:四舍五入进一

      7.3 处理List的内建函数

        first/list:取第一个/最后一个值

        seq_contains:序列是否包含该值

        seq_index_of:该值在list中第一次出现的下标

        size/reverse/sort/sort_by:大小/反转/排序/list中为一个对象,可以根据某个属性进行排序

        chunk(num):把list进行分块处理,每num为一块  

      7.4 其他内建函数

        is函数:is_string/is_number/is_method(判断是否为string/number/method

        has_content函数:判断一个对象是否是null、不存在

    8. Function指令

    <#function doAdd param1 param2>
    
    <@return param1 + param2 />
    
    </@function>
    
    调用: ${doAdd(5, 6)}
  • 相关阅读:
    【Java】Web 服务编程技巧与窍门: 在 UDDI 注册中心为 Web 服务注册开发 UDDI Java 应用程序
    【Java】理解 UDDI 注册中心的 WSDL
    【Java】详解Java解析XML的四种方法
    【JavaScript】常用的JS
    【Java】ArrayList和LinkedList的区别
    【Java】WebService教程
    ORACLE PL/SQL异常处理(Exception)学习笔记
    【面试】花旗
    【304】python专题-读取xml文件
    【303】C# 复制窗体 & 修改名称
  • 原文地址:https://www.cnblogs.com/www-123456/p/11147706.html
Copyright © 2011-2022 走看看