Velocity $ 和$! 区别

输出指令

${}过滤输出

输出表达式的计算结果,并进行过滤,比如:过滤变量中的HTML标签。

格式:
${expression}
 
示例:
${user.name}

 

注:HTTL缺省开启了EscapeXmlFilter,以防止HTML注入攻击,参见:安全示例。如果你需要更强的过滤,请自行实现Filter,并配置到value.filters。此处为运行时热点,请注意性能。

如果输出变量的类型为Template,则缺省不过滤,比如:${include("foo.httl")}

$!{}不过滤输出

原样输出表达式的计算结果,不进行任何过滤,通常用于输出HTML片段。

格式:
$!{expression}
 
示例:
$!{body}

 

安全示例

HTTL能根椐变量所处的位置,智能使用不同的安全过滤器,比如:

<htmL>

 

 
<!-- 这里会将html变量中的引号转成&quot; -->
<input value="${html}" />
 
<script type="text/javascript">
// 这里会将js变量中的引号转成\",而不是&quot;
var value ="${js}";
</script>
 
<style type="text/css">
.div {
    // 这里同样会将css变量中的引号转成\",而不是&quot;
    font-family:"${css}"
}
</style>

复制代码

 

这一个多月以来,接触到的技术挺多,但仍有很多没有自主学到的知识,以后还会慢慢学习总结的。这次先说说velocity吧。

 velocity,是一个基于Java的模板引擎,它允许任何人仅仅简单的使用模板语言来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点。这是很好的一个地方,可以提高很多效率。下面来说下velocity的语法吧。

 

1.获取:

$!(var):如果有值则输出,如果为空,则不显示;

${var}:如果有值则输出,如果为空,则将该代码原样输出;

2.设置:

#set{$var=5}:设置var的值为5;

3. 判断:

#if{! $var}判断var为空

#elseif{$var}判断var不为空

#else{}
#end

4.循环:

循环数组或List时:

#foreach($var in list)

##输出当前迭代的次数

$velocityCount

${var}

#end

5.判断是否为null

1)使用 #ifnull() 或 #ifnotnull() 
   #ifnull ($foo) 
   要使用这个特性必须在velocity.properties文件中加入: 
userdirective = org.apache.velocity.tools.generic.directive.Ifnull 
userdirective = org.apache.velocity.tools.generic.directive.Ifnotnull 
2) 使用null工具判断 
   #if($null.isNull($foo))

 

转载自https://www.cnblogs.com/fengjian/p/4324227.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值