`

velocity 文件模板拼接字符串

阅读更多

velocity 文件模板拼接字符串

velocity.properties
example2.vm:
Hello from $name in the $project project.


public class VelocityUtilTest {

 public static void main(String[] args) {

  String templateFile="./resource/velocity/example2.vm";
  Map<String,Object> arguments = new HashMap<String,Object>();
  arguments.put("name", "Velocity");
  arguments.put("project", "Jakarta");
  String str = VelocityUtil.getContent(templateFile,arguments);
  System.out.println(str);
 }

}


import java.io.StringWriter;
import java.util.Map;
import java.util.Map.Entry;

import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.exception.MethodInvocationException;
import org.apache.velocity.exception.ParseErrorException;

public class VelocityUtil {
 
 static VelocityUtil instance = new VelocityUtil();
 
 static{
   try
         {
             Velocity.init();
         }
         catch(Exception e)
         {
             System.out.println("Problem initializing Velocity : " + e );
         }
 }
 
 public static String getContent(String templateFile, Map<String,Object> args){
  VelocityContext context = new VelocityContext();

  if(args!=null){
   for(Entry<String,Object> ent: args.entrySet()){
    context.put(ent.getKey(), ent.getValue());
   }
  }

        StringWriter w = new StringWriter();

        try
        {
            Velocity.mergeTemplate(templateFile, "ISO-8859-1", context, w );
        }
        catch (Exception e )
        {
            System.out.println("Problem merging template : " + e );
        }

        System.out.println(" template : " + w );

        String s = "We are using $project $name to render this.";
        w = new StringWriter();

        try
        {
            Velocity.evaluate( context, w, "mystring", s );
        }
        catch( ParseErrorException pee )
        {
            System.out.println("ParseErrorException : " + pee );
        }
        catch( MethodInvocationException mee )
        {
            System.out.println("MethodInvocationException : " + mee );
        }
        catch( Exception e )
        {
            System.out.println("Exception : " + e );
        }
        return w.toString();
 }

}

分享到:
评论

相关推荐

    velocity-1.7-sources.zip

    使用 Velocity 可以在文本文件里面生成邮件内容,而不是在 Java 代码中拼接字符串。 4. 转换 xml:Velocity 提供一个叫 Anakia 的 ant 任务,可以读取 XML 文件并让它能够被 Velocity 模板读取。一个比较普遍的应用...

    velocity语法与使用方法

    Velocity提供了丰富的字符串处理功能,如拼接、截取等: - 拼接示例:`#set($directoryRoot="www") #set($templateName="index.vm") #set($template="$directoryRoot/$templateName")`,这里定义了一个名为`$...

    velocity+Java开发指南中文版.zip

    4. **渲染模板**:通过调用Velocity引擎的`mergeTemplate()`方法,结合上下文中的数据,生成最终的输出字符串。 5. **处理VTL指令**:在模板文件中,使用VTL指令进行条件判断、循环遍历、输出变量等操作。例如: -...

    velocity中文资料以及实例详解

    - `String Concatenation`:字符串连接,Velocity支持简单的字符串拼接操作。 - `Math`:内置数学运算能力,可以进行基本的算术运算。 - `Range Operator`:用于创建数字范围,如 `1..5` 代表1到5的整数序列。 - `...

    java 中根据html模板生成新的html

    这个过程通常涉及到字符串操作、模板引擎库的使用以及文件I/O操作。以下将详细介绍这一知识点。 首先,我们需要理解HTML模板的概念。HTML模板是一种预定义的HTML结构,其中包含一些可变部分,这些部分在运行时会被...

    Velocity用户手册中文版

    - 字符拼接(StringConcatenation):用于在模板中拼接字符串。 6. 示例: - Velocity 通过其模板语言 VTL 提供了多种示例,展示如何将动态内容嵌入到网页中。 - “TheMudStore”例子用于说明 Velocity 在实际...

    velocity简介

    5. **字符串操作**:可以对字符串进行拼接、截取等操作,如`#set($directoryRoot=www)`定义了根目录路径,之后可以通过`#set($template=$directoryRoot/$tempateName)`来组合路径和文件名,生成最终的文件路径。...

    邮件模版 velocity

    - 提供了字符串操作,如拼接、分割等。 通过上述知识点的学习,您可以更好地理解 Velocity 模板引擎的工作原理及其在 Spring 框架下的集成应用。无论是对于邮件模板的开发还是其他类型模板的创建,Velocity 都能...

    velocity 分享 ppt

    这与Java中的字符串拼接类似,但在模板语言的上下文中提供了更加灵活的处理方式。 #### 宏(Macro) 宏允许定义可重用的代码块,这在创建复杂的模板结构或重复使用相同的代码片段时特别有用。 ### Velocity总体...

    velocity_语法教程

    - **变量拼接**:可以使用字符串拼接的方式来构建复杂的字符串表达式。 - **示例代码**: ```velocity #set($directoryRoot="www") #set($templateName="index.vm") #set($template="$directoryRoot/$...

    java发送HTML模版邮件

    例如,你可以使用`StringBuffer`或`StringBuilder`拼接HTML字符串。 5. **设置消息内容类型**: 在`Message`对象上,使用`setContent()`方法指定邮件内容类型为`text/html`,以确保邮件客户端能正确解析HTML。 6. *...

    读取excel文件,生成java文件.pdf

    这可能涉及字符串拼接,或者使用模板引擎如FreeMarker或Velocity来动态生成代码。 7. **Java文件写入**:生成的Java代码字符串需要写入到文件系统中,可以使用`System.IO.File.WriteAllText`方法(在C#中)或等效的...

    java-velocity-syntax-highlight

    - **字符串连接(#set($str = "$var1 $var2"))**: 拼接字符串。 2. **IDE集成**: - 大多数现代IDE(如IntelliJ IDEA, Eclipse, NetBeans)都有插件支持Velocity模板的语法高亮。这些插件通常会自动识别`.vm`...

    java插值.rar

    4. **Java模板引擎**:对于更复杂的动态字符串生成,可以使用Java模板引擎,如FreeMarker、Velocity或Thymeleaf。这些库允许在模板文件中定义动态内容,然后在运行时用数据填充。例如,FreeMarker的模板可能如下: ...

    动态生成、编译、运行java文件

    首先,动态生成Java代码通常涉及到字符串或模板引擎。开发者可以使用字符串变量来构造Java源代码,并将其存储为字符串对象。例如,我们可以用StringBuilder或StringBuffer类来拼接代码片段。此外,还可以使用模板...

    test_static_html:java生成静态HTML

    无论是使用模板引擎、直接构建字符串,还是借助静态站点生成器,都可以根据项目需求选择合适的方法。在实际应用中,开发者还需要考虑性能、可维护性以及SEO等因素,以确保生成的HTML页面既高效又易于管理。

    用xml与java创建程序生成器

    在解析完成后,Java代码可以通过字符串操作或者模板引擎(如FreeMarker、Velocity等)生成目标代码。 下面是一个简化的步骤概述: 1. **XML设计**:首先,我们需要设计XML模板,定义代码生成的规则和结构。每个XML...

    java代码生成器.pdf

    总的来说,Java代码生成器利用字符串拼接和文本输出能力,能够帮助开发者快速构建定制化的代码结构。通过理解和应用这种技术,我们可以提高代码质量,减少手动编码带来的错误,并加速软件开发的迭代进程。在实际项目...

    优雅高效的MyBatis.docx

    通过这个构造器,开发者可以方便地构建复杂的 SQL 查询,无需手动编写大量的字符串拼接代码。例如,可以使用 `eq`(等于),`ne`(不等于),`like`(模糊匹配),`gt`(大于),`lt`(小于)等方法来构建 WHERE ...

    java生成XML的方法【附demo源码下载】

    - 尽量避免直接使用字符串拼接构建大型XML,因为这可能导致内存溢出。可以考虑使用`DocumentBuilderFactory`和`TransformerFactory`创建DOM树,然后通过`Transformer`将DOM树转换为XML字符串。 - 考虑使用模板引擎...

Global site tag (gtag.js) - Google Analytics