velocity的用法,包括截取字符,循环遍历,计算,判空

2024-01-27 10:38

本文主要是介绍velocity的用法,包括截取字符,循环遍历,计算,判空,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.截取部分字段substring
2.分割成数组split
3.说到split成数组,就要看数组的几个可以用的方法
4.所以学java从不用数组,而用list
5.计数用$velocityCount
6.空null和空字符串""的判断
7.基本语法错误#end不要忘
8.#macro其实也很简单
 9引用外部文件#include和#parse

velocity模板其实就是java不分语法的翻译,用到的属性还是java的方法,get,set,等

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     #else8        <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[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.

这篇关于velocity的用法,包括截取字符,循环遍历,计算,判空的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/649982

相关文章

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

C#如何去掉文件夹或文件名非法字符

《C#如何去掉文件夹或文件名非法字符》:本文主要介绍C#如何去掉文件夹或文件名非法字符的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#去掉文件夹或文件名非法字符net类库提供了非法字符的数组这里还有个小窍门总结C#去掉文件夹或文件名非法字符实现有输入字