velocity 语法简记

        前几天接触了一个相对老一些的项目,渲染模板用的velocity,之前并没有接触过这个模板,所以也难免踩了踩坑,现在把页面上用到的一些语法总结一下,包括if、for、set等,希望可以给同道中人带来一点点帮助。

        说明:velocity使用#作为关键符号,访问后台传过来的数据时使用$进行访问,例如:后台modelAndView.addObject("module","abc"),前台使用$module就可以获取到module的内容。

后台代码:

@RequestMapping("/")
public ModelAndView index(){
        List<String> dataList = new ArrayList<>();
        dataList.add("第一个");
        dataList.add("第二个");
        dataList.add("第三个");
        ModelAndView mv = new ModelAndView("page/index");
        mv.addObject("dataList", dataList);
        mv.addObject("tempFlag", 1);
        return mv;
}

获取map的值

${dataMap.get('key')}

if语法

使用格式:#if...#end、 #if...#else...#end、 #if...#elseif....#else...#end

例子:

#if($tempFlag && $tempFlag=0)
<p>这是一个内容</p>
#else
<p>这是另一个内容
#end

   注意:#if与(没有空格,要紧挨着。

set语法

使用格式:#set($变量名=xxx),定义之后,就可以在页面中使用$变量名了

例如:#set($currentTemp = $tempFlag)

            这句就是把后台传过来的tempFlag的值赋给了新变量currentTemp,定义之后就可以直接在页面中使用$currentTemp了。

注意:如果需要用到加减乘除符号时,符号两边必须要加空格。例如:

#set($index = $index + 1)

for语法

使用格式:#for($变量 in 集合)

例如:

#if($dataList && $dataList.size() > 0)
   #foreach($item in $dataList)
        <p>$item</p>
   #end
 #end

备注: #if判断的意义是判断dataList是否存在,并且不是空集合

这种场景就是最基础的直接把集合的内容循环出来,还有另一种场景,前几个数据用一种样式展示,后几个数据用另一种样式展示,代码如下图所示。

#if($dataList && $dataList.size() > 0)
     #set($index=0)
     <div class="fourLine">
         #foreach($item in $dataList)
         #if($index < 4)
         <p> $item </p>
         #set($index = $index + 1)
         #else
         #break
         #end
         #end
     </div>
     #if($dataList.size() > 4)
     #set($endIndex = $dataList.size() - 1)
     <div class="fourLine">
         #foreach($temp in [4..$endIndex])
         #set($currentData=$dataList.get($temp))
            <h1>$currentData</h1>
         #end
     </div>
     #end
 #end

知识点:#break退出for循环,继续执行for后面的语句。

2023.3.15补充

"{}"符号

用来明确标识Velocity变量,可以和页面内容区分开来,例如${name}是一句学生,可以和页面内容紧挨着展示。

"!"符号

两种作用:

  1. 放在$后面,用来强制把不存在的变量显示为空白,例如$!{flag}
  2. 放在$前面,用来判断布尔变量,例如#if(!${flag})

基本上就是这些了,欢迎大家多多指教!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值