`

Velocity Toolbox

阅读更多

velocity.VelocityUtil

package velocity;

import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.context.Context;
import org.apache.velocity.tools.ToolManager;

import java.io.StringWriter;

/**
 * Created by Administrator on 2015/3/11.
 */
public class VelocityUtil {

    public static String exportFixedVelocityWithToolbox() {
        // 创建引擎
        VelocityEngine ve = new VelocityEngine();
        // 设置模板加载路径,这里设置的是class下
        ve.setProperty(Velocity.RESOURCE_LOADER, "class");
        ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
        // 进行初始化操作
        ve.init();
        // 加载模板,设定模板编码
        Template t = ve.getTemplate("template/velocity_template.vm", "UTF-8");
        // 设置初始化数据

        // 加载toolbox
        ToolManager manager = new ToolManager();
        manager.configure("/template/configuration.xml");

        Context context = manager.createContext();
        context.put("name", "张三");

        String[] hobbyArray={"吃饭","喝水","洗澡"};
        context.put("hobby", "爱好");
        context.put("hobbyArray", hobbyArray);

        // 设置输出
        StringWriter writer = new StringWriter();
        // 将环境数据转化输出
        t.merge(context, writer);

        return writer.toString();

    }

    public static void main(String[] args) {
        System.out.println(exportFixedVelocityWithToolbox());;
    }
}

 

template/configuration.xml

<toolbox>
    <tool>
        <key>date</key>
        <scope>application</scope>
        <class>org.apache.velocity.tools.generic.DateTool</class>
    </tool>
</toolbox>

 

template/velocity_template.vm

$name
$hobby:
#foreach($hobby in $hobbyArray)
    ${hobby}
#end

year : $date.getYear()
month: $date.getMonth()
month: $date.getDay()

current time : $date.get('yyyyMMdd:HHmmss')

 

 

分享到:
评论

相关推荐

    Velocity语法以及整合struts2总结

    4. **可扩展性**:Velocity可以通过Velocity Tools等工具集进行扩展,如Velocity Toolbox提供了许多实用的工具和辅助类。 **二、Velocity在Struts2中的整合** Struts2是一个流行的MVC框架,它默认支持多种视图技术...

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    struts.action.extension ... The location of the Velocity toolbox velocity工具盒的位置 struts.xslt.nocache Whether or not XSLT templates should not be cached 是否XSLT模版应该被缓存

    velocity入门使用教程

    在velocity.properties文件中,可以指定toolbox.xml文件,该文件用于定义工具箱,工具箱中可以包含自定义的Velocity工具(Macro)和函数(Function)。这些工具和函数可以在模板中直接调用,简化模板编写。 通过...

    velocity 1.5

    10. **扩展性**:Velocity 允许用户自定义工具类(Toolbox),将自定义的方法或工具暴露给模板使用,增强了其灵活性和可扩展性。 总的来说,Velocity 1.5 是一个强大且灵活的模板引擎,它简化了Web应用的开发流程,...

    Velocity Mapping Toolbox (VMT),VMT 水声学软件 ,ADCP数据后处理软件

    VMT是一款基于Matlab的软件,用于处理和可视化沿河流或其他水体中的样带收集的ADCP数据。VMT 允许对一系列 ADCP 数据集进行快速处理、可视化和分析,并包括将 ADCP 数据导出到与 ArcGIS、Tecplot 和 Google 地球兼容...

    velocity基础教程--1.标准使用

    可以在`velocity.properties`中配置`toolbox.config`,并使用`#tool`指令在模板中引用这些工具。 8. **源码阅读** 深入理解Velocity的工作原理,可以查看其源码,了解如何解析模板、执行指令以及如何处理上下文...

    如何解决SpringBoot2.x版本对Velocity模板不支持的方案

    SpringBoot 2.x 版本对 Velocity 模板不支持的...spring.velocity.toolbox-config-location=/WEB-INF/toolbox.xml ``` 最后,我们需要在 spring.xml 文件中添加以下视图解析配置: ```xml &lt;!-- 设置视图解析工具 --&gt; ...

    velocity例子

    5. **工具箱(Toolbox)**:Velocity允许使用工具箱(Tools)将各种实用工具类暴露给模板,如日期格式化、URL编码等。通过`VelocityContext.addToolbox()` 添加工具箱,然后在模板中使用。 6. **模板解析与合并**:...

    unicycle_model_for_Robotics_Toolbox.zip_Unicycle_differential ro

    Velocity-based dynamic model and adaptive controller for differential steered mobile robot

    velocity学习资料

    10. **工具箱(Toolbox)**:Velocity Tool API允许开发者将自定义的工具类注册到上下文中,这些工具类可以提供额外的功能,如日期处理、数学计算等。 通过以上这些特性,Velocity提供了一个强大且灵活的模板系统,...

    crewes.zip最全的地震勘探工具包(由卡尔加里大学权威的CREWES小组发布)

    《全面解析crewes.zip:地震勘探工具包的深度探索》 地震勘探是地质学和地球物理学领域中的一个重要分支,主要用于探测地壳结构、寻找石油和天然气等矿产资源。卡尔加里大学的CREWES小组在这一领域享有极高的声誉,...

    5D LFV Depth-Velocity Filter Toolbox:用于对光场视频 (LFV) 进行 5-D 深度-速度过滤的工具箱。-matlab开发

    该工具箱提供了用于光场视频 (LFV) 5-D 深度速度滤波的 MATLAB 函数。有关 5-D 深度-速度滤波概念和 5-D FIR 深度速度滤波器的更多详细信息,请参阅 [1] [1] CUS Edussooriya、DG Dansereau、LT Bruton 和 P....

    粒子群工具箱 - Particle Swarm (PSO) Toolbox-beta-0.3.zip

    每个粒子有两个关键属性:位置(Position)和速度(Velocity)。粒子的位置代表一个潜在的解决方案,速度决定了粒子如何在解空间中移动。算法迭代过程中,每个粒子根据其当前位置和最佳历史位置,以及全局最佳位置来...

    vilocity简单例子

    这个文件通常在Velocity Tools项目中使用,它是一个配置文件,用于定义工具箱中的各种工具实例。在Vilocity中,工具是指可以方便地在模板中使用的Java对象。例如,你可能会在`toolbox.xml`中配置一个日期工具,以便...

    基于matlab+c++实现的ZJU机器人学ROS机械臂作业+源码(高分优秀项目)

    实物敲铃实验的代码为MATLAB代码,使用了MATLAB ROS ToolBox. Run catkin_make Lab 1 正逆运动学 roslaunch probot_gazebo probot_anno_position_control_bringup.launch roslaunch probot_gazebo invert.launch ...

    Freemarker使用指南

    在实际应用中,由于Velocity需要自定义toolbox类和编写通用模板代码,而Freemarker则相对更易于使用。 Freemarker的工作原理可概括为:将页面样式设计放在FreeMarker模板文件中,然后将动态数据以键值对的形式放入...

    有限体积的MATLAB工具

    This is a finite volume (toy) toolbox for chemical/petroleum engineers. Right now, it can solve a transient convection-diffusion equation with variable velocity field/diffusion coefficients.

    粒子群算法的matlab实现

    在MATLAB中实现PSO,可以使用内置的`Global Optimization Toolbox`,或者自定义代码实现。自定义代码允许更灵活地调整参数和实现各种改进策略。文件列表中提到的可能是包含不同改进方法的MATLAB脚本或函数,如混沌...

Global site tag (gtag.js) - Google Analytics