• 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)) 

  • 相关阅读:
    Python 字典方法(.get .item)
    Python格式化输出
    R sprintf函数
    r 中sub() gsub()等匹配与替换函数
    R read.csv数据框
    C#中使用ref、out、params例子
    C#中的三种委托方式:Func委托,Action委托,Predicate委托
    tfs强制撤销解锁命令
    Json序列化与反序列化
    XPath语法在C#中使用XPath示例第二讲
  • 原文地址:https://www.cnblogs.com/fengjian/p/4324227.html
Copyright © 2020-2023  润新知