`
littie1987
  • 浏览: 133338 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Velocity加载classpath下模板

    博客分类:
  • Java
 
阅读更多

Velocity默认是加载文件系统中的模板,如果希望加载classpath下的模板的话,需要更换他的加载器

 Properties properties=new Properties();
	        //设置velocity资源加载方式为class
 properties.setProperty("resource.loader", "class");
	        //设置velocity资源加载方式为file时的处理类
 properties.setProperty("class.resource.loader.class", 
                        "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
VelocityEngine ve = new VelocityEngine(properties);   

 

 

默认情况是加载文件系统

        VelocityEngine ve = new VelocityEngine();  
        //设置参数
        ve.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, templatepath);//加载文件系统

 

另附完整代码

 Properties properties=new Properties();
	        //设置velocity资源加载方式为class
	     properties.setProperty("resource.loader", "class");
	        //设置velocity资源加载方式为file时的处理类
	     properties.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
	        
        VelocityEngine ve = new VelocityEngine(properties);   
        //设置参数
      //  ve.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, templatepath);
        //处理中文问题
        ve.setProperty(Velocity.INPUT_ENCODING,"utf-8");
        ve.setProperty(Velocity.OUTPUT_ENCODING,"utf-8");
        try  {
            //初始化模板
            ve.init();
            //Velocity模板的名称 
            Template template = ve.getTemplate(templatename,"utf-8"); 
            Writer mywriter = new PrintWriter(outfile,"utf-8");
            template.merge(vc, mywriter);
            mywriter.flush();           
            mywriter.close();
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("写模板文件"+templatename+"失败", e);
            throw e;
        }

 

分享到:
评论

相关推荐

    velocity模板访问

    然而,默认情况下,Velocity会从操作系统的文件系统中读取模板文件,采用`FileResourceLoader`作为资源加载器。 为了使Velocity能够从类路径(classpath)中读取模板文件,我们需要调整其初始化参数。首先,创建一...

    Java Velocity模板引擎,简单字符串生成

    在具体项目中,开发者会在`src`目录下创建模板文件,例如`template.vm`,并使用Velocity API来处理模板和数据,如下所示: ```java import org.apache.velocity.app.VelocityEngine; import org.apache.velocity....

    velocity jar包

    在实际使用中,你需要将这三个JAR文件添加到项目的类路径(Classpath)中,这样Java虚拟机才能找到并加载它们。在Maven或Gradle构建系统中,你可以通过添加对应的依赖来实现。 使用Velocity时,首先需要创建一个`...

    Mastering.Apache.Velocity

    1. **加载模板**:Velocity 引擎首先加载包含 VTL 的模板文件。 2. **解析模板**:对模板进行解析,识别出其中的 VTL 语法。 3. **合并数据模型**:将 Java 对象的数据模型合并到模板中。 4. **生成输出**:最终生成...

    itext加载velocity生成PDF

    将两者结合,我们可以利用`Velocity`的模板能力来动态生成PDF内容,这在SpringMVC框架中尤其方便。 `iText`库提供了一系列API,用于创建PDF文档、添加文字、图像、表格等元素。它支持流式和模型两种模式,前者适用...

    Velocity代码生成工具

    - **定义**:VelocityEngine是Velocity的核心组件,负责加载和解析模板,执行模板中的逻辑并生成最终的输出。 - **初始化**:通过设置一些必要的参数(如资源加载器、模板路径等)来初始化VelocityEngine实例。 - **...

    Struts2 整合 velocity最简单工程 最少的jar包

    - 将这些jar包添加到项目的类路径(classpath)中,通常在WEB-INF/lib目录下。 2. **Struts2配置**: - 在`struts.xml`配置文件中,定义一个Action,指定其结果类型为`velocity`。例如: ```xml ...

    velocity1.7

    Velocity 是 Apache 软件基金会下的一个开源项目,它是一个基于 Java 的模板引擎,用于生成动态 web 内容。在 Web 开发中,Velocity 可以帮助开发者将表现层(视图)与业务逻辑层(控制器)分离,实现 MVC(Model-...

    velocity-1.7-dep.jar.zip

    在使用 "velocity-1.7-dep.jar" 时,开发者需要将其添加到项目的类路径(classpath)中,这样就可以在代码中通过 `import` 语句来引用 Velocity 相关的类和方法。例如,创建一个新的 `VelocityContext` 对象,然后将...

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

    spring.velocity.resourceLoaderPath=classpath:/templates/ spring.velocity.suffix=.vm spring.velocity.toolbox-config-location=/WEB-INF/toolbox.xml ``` 最后,我们需要在 spring.xml 文件中添加以下视图解析...

    Velocity java开发指南

    - **设置环境**:将 `Velocity-X.jar` 添加到项目的 classpath 中或者放置在 Web 应用程序的 lib 目录下。 - **运行示例**:推荐运行提供的示例项目来熟悉 Velocity 的基本用法。 #### 三、依赖资源 Velocity 运行...

    SpringBoot与velocity的结合的示例代码

    这些配置项主要用于设置Velocity的字符编码、输入编码、输出编码、模板加载路径和模板后缀等。 四、使用Velocity模板 在Spring Boot中,使用Velocity模板需要在Controller中返回视图名称,然后由...

    velocity配置

    而在VM模板文件中,你可以使用Velocity模板语言来访问和显示数据。例如: ```html 姓名 $!ds[0].ksxm <!-- 循环遍历数据 --> #foreach($item in $ds) $item.ksxm <!-- 其他字段... --> #end ``` 以上就是...

    velocity例子

    开发者可以通过`first_velocity.vm`来创建动态网页,后端代码(位于`src`目录下)负责处理业务逻辑并提供数据给模板。`WebRoot`目录下的资源会被Web服务器直接服务于客户端。`.classpath`和`.project`文件则确保了...

    Spring中使用FreeMaker或Vilocity模板发送邮件

    首先,创建一个`.ftl`模板文件,例如`email.ftl`,然后在代码中加载模板并填充数据: ```java Template template = freemarkerConfig.getTemplate("email.ftl"); Map, Object> model = new HashMap(); model.put...

    基于Java的实例源码-模板语言 Beetl.zip

    Beetl与FreeMarker、Velocity等其他Java模板引擎相比,其优势在于语法简洁、性能优越。然而,选择哪个模板引擎取决于项目需求和个人喜好,每种引擎都有其适用场景。 8. **应用场景** Beetl常用于Java Web开发,...

    struts2加载必要的架包

    3. ** freemarker 或 velocity 模板引擎**:根据你的视图层选择,struts2-freemarker-plugin.jar 或 struts2-velocity-plugin.jar,这些库支持模板语言来渲染视图。 4. **Struts2插件**:struts2-plugins目录下包含...

    JFinal(JAVA 极速WEB ORM框架 ) v3.2.zip

    3、添加ClassPathSource支持从class path及jar包读取模板文件 4、模板引擎添加extension method功能 5、ActiveRecordPlugin支持自动类型转换 6、添加 IDbProFactory,支持继承 DbPro 来定制 DbPro 功能 7、文件...

    JFinal v3.2

    JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速...1、action支持形参注入2、模板引擎支持spring、spring boot3、添加ClassPathSource支持从class path及jar包读取模板文件4、模板引擎添加ext

Global site tag (gtag.js) - Google Analytics