zoukankan      html  css  js  c++  java
  • Velocity

    Velocity简介

    Velocity是一个基于Java的模板引擎(template engine)。它可以让视图的设计者在web页面中引用Java代码中定义的数据对象和命令,从而使Web designers和Java开发者依照MVC思想(Model-View-Controller)开发系统,这意味着Web designers只需将精力用在视图外观设计,而Java程序员则只要关心如何写出高效简洁的Java对象以及实现业务逻辑,Velocity会将他们组装到一起。

    velocity模板语言(VTL)

    • VTL声明:所有的VTL Statement都是以#开头,且包含一个指示符。
    • VTL注释:单行注释以##开头的一行文字,如要多行注释,将它们放入#*和*#之间。
    • VTL引用:变量引用(variables)、属性引用(properties)、命令引用(methods),使用符号$。           注意:模板中引用必须是通过Java Bean中的getter/setter实现的,而直接的java对象的数据域是不能直接引用的,如$foo.Name会解析到class Foo‘s                    getName()的实例方法,但不会解析到Foos类的public Name这个实例变量。
    • VTL指令(directives):模板设计者使用“引用”生成动态内容,指令——简单的说就是设计者在模板中操作Java对象,让视图设计者全部控制输出内容的格式。指令总是以#开头后面紧跟具体的指令符。
    • Velocity使用==来做比较
    • Velocity应用程序,流程分以下几步:
    1. 初始化Velocity
    2. 创建context对象
    3. 添加数据到context
    4. 选择模板
    5. 合并模板和数据,产生输出页面

    在Solr中使用Velocity返回搜索结果

    在Solr中可以以多种方式返回搜索结果,如单纯的文本(XML、JSON、CSV等),也可以将返回Velocity,js等格式。VelocityResponseWriter用于返回Velocity类型文本。Solr的RequestHandler  /browse,就使用了VelocityResponseWriter。在solrconfig.xml文件中配置如下:

     <requestHandler name="/browse" class="solr.SearchHandler">
         <lst name="defaults">
           <str name="echoParams">explicit</str>
    
           <!-- VelocityResponseWriter settings -->
           <str name="wt">velocity</str>
           <str name="v.template">browse</str>  <!--定义到文件browse.vm,省略了后缀名vm,v.template中的内容将作为$content的内容-->
           <str name="v.layout">layout</str>
           <str name="title">EMPE</str>
      </requestHandler>

    关于Velocity这个writer的定义如下:

     <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" startup="lazy"/> 

    Solr下载文件中,自带的browse模板连接:http://localhost:8983/solr/techproducts/browse

    Velocity模板依赖的Jar包,在Solr下载包中的位置为:<lib dir="../../../dist/" regex="solr-velocity-d.*.jar" />

    在solrconfig.xml的同级目录下的velocity文件夹中,包含Velocity相关的文件。

    参考资料:

    https://cwiki.apache.org/confluence/display/solr/Velocity+Response+Writer

  • 相关阅读:
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    自考感悟,话谈备忘录模式
    [每日一题] OCP1z0-047 :2013-07-26 alter table set unused之后各种情况处理
    Java实现 蓝桥杯 算法提高 p1001
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 因式分解
    Java实现 蓝桥杯 算法提高 因式分解
  • 原文地址:https://www.cnblogs.com/saratearing/p/5740683.html
Copyright © 2011-2022 走看看