• 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

  • 相关阅读:
    《大话设计模式》的一些总结
    一个仿jdkd的动态代理
    一道笔试题(构造数组)
    c# 汉字转拼音
    IDEA常用插件盘点(香~~)
    服务器概念、应用服务器盘点大科普
    创建一个简单的Struts 2程序
    JAVA(Object类、Date类、Dateformat类、Calendar类)
    DQL查询语句和约束
    MySQL操作语句
  • 原文地址:https://www.cnblogs.com/saratearing/p/5740683.html
Copyright © 2020-2023  润新知