zoukankan      html  css  js  c++  java
  • Velocity(7)——velocity进阶用法

    1.截取部分字段substring

    1 原始字符串:$!ag.tagValue,也许很长,前端页面展示时需要截取字符串。
    2 #set($str=$!ag.tagValue)
    3 
    4 #if($str.length()>30)
    5     #set($str=$str.substring(0,30))
    6     $str ...
    7 #else
    8     $!ag.tagValue
    9 #end

    使用substring(begin,end)要注意,结束位置为:end索引-1

    2.分割成数组split

     1 #if($!{result.creType} && $result.creType)
     2   #foreach ($element in $result.creType.split(","))
     3     #if($element == 1)
     4        <script>document.getElementsByName("cretype")[0].checked="checked";</script>
     5     #elseif($element == 2)
     6        <script>document.getElementsByName("cretype")[1].checked="checked";</script>
     7     #else
     8        <script>document.getElementsByName("cretype")[2].checked="checked";</script>              
     9     #end
    10   #end
    11 #end 

    3.说到split成数组,就要看数组的几个可以用的方法

    velocity 中的数组对应 Java 中的 List 对象。对于 Java 原生 Array 对象, 只能够 #foreach 进行遍历,无法使用 $arr[0] 和 $arr.get(0) 方法。

    4.所以学java从不用数组,而用list

    --事实上,list很方便,但list比数组效率低很多倍

    • $myarray.isEmpty()list是否为空
    • $myarray.size()获取list元素个数
    • $myarray.get(2)获取list指定下标的元素
    • $myarray.add()增加元素

    5.计数用$velocityCount

    在foreach中velocityCount表示循环的次数,从1开始,代表第一个循环。

    6.空null和空字符串""的判断

    在velocity中,非null被认为是真的,所以,判断null可以用

    1 #if($!变量名)
    2  ……
    3 #else
    4  ……
    5 #end

    或者既可以判断null也可以判断空字符串

    1 #if("$!varName" != "")
    2  不为null 或 ""
    3 #else
    4  ……
    5 #end

    7.基本语法错误#end不要忘

    最开始的时候经常#if就完了报错,后来都是写完if就end,最后写中间。

    8.#macro其实也很简单

    原来感觉不懂不敢碰,自从写了个velocity分页后就忽然觉得宏不要太好用。事情是这样的,当时地区三级联动需要多处调用,提取出成公共模块,用#parse导入后出现冲突,因为一个页面用两次地区联动代码,id就重复了。于是想把id给变成参数,当我需要这个公用代码的时候,把id当参数传进去,最后render的结果就是html代码的id为我的参数。这样看来,宏就是一个函数。

    想要用宏,先写好,然后parse,然后调用。

    一个简单的宏函数:

    1 #macro( d )
    2 <tr><td></td></tr>
    3 #end

    使用它:如果在本页面,直接#d,如果是单独写了一个模板文件,那么需要先#parse(文件路径),再#d,如同js外部引用。

    传参数的宏:

    1 #macro( tablerows $color $somelist )
    2 #foreach( $something in $somelist )
    3 <tr><td bgcolor=$color>$something</td></tr>
    4 #end
    5 #end

    一个综合使用,分页

     9引用外部文件#include和#parse

    我开始经常用#include,后来发现刷新页面没变化,用#parse就好了。字面理解,一个是直接拿过来,一个是解析后。所以,如果是传html代码,可以直接include;若是包含velocity代码的要编译#parse.

     
  • 相关阅读:
    Finalize,Dispose,SuppressFinalize
    防火防盗防微软,Firefox发布插件自动检测服务
    Nginx的Rewrite设置及示例
    Linux游戏开发包 ClanLib 2.1.0 发布
    HTTP协议详解(真的很经典)
    Linux on POWER:发行版迁移和二进制兼容性考虑事项
    映射网络驱动器VBS脚本
    [笔记] 使用 opcache 优化生产环境PHP
    2020最新版MySQL数据库面试题(三)
    请注意,面试中有这7个行为肯定会被拒绝!
  • 原文地址:https://www.cnblogs.com/NiceCui/p/7782972.html
Copyright © 2011-2022 走看看