`

velocity基础教程之模板发布

阅读更多

velocity是一个非常好用的模板引擎
这里不对项目进行详细介绍,可以访问apache官方网站查看相关说明

下面我们通过一个简单的实例来讲解一下velocity的使用过程
Java代码

  • // 创建引擎   
  •         VelocityEngine ve=new VelocityEngine();  
  •         //设置模板加载路径,这里设置的是class下   
  •         ve.setProperty(Velocity.RESOURCE_LOADER, "class");  
  •         ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");  
  •         try {  
  •             //进行初始化操作   
  •             ve.init();  
  •             //加载模板,设定模板编码   
  •             Template t=ve.getTemplate("test/velocity/simple1.vm","gbk");  
  •             //设置初始化数据   
  •             VelocityContext context = new VelocityContext();  
  •             context.put("name", "张三");  
  •             context.put("project", "Jakarta");  
  •             //设置输出   
  •             StringWriter writer = new StringWriter();  
  •             //将环境数据转化输出   
  •             t.merge(context, writer);  
  •             //简化操作   
  •             //ve.mergeTemplate("test/velocity/simple1.vm", "gbk", context, writer );   
  •             System.out.println(writer.toString());  
  •         } catch (Exception e) {  
  •             e.printStackTrace();  
  •         }   // 创建引擎 VelocityEngine ve=new VelocityEngine(); //设置模板加载路径,这里设置的是class下 ve.setProperty(Velocity.RESOURCE_LOADER, "class"); ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); try { //进行初始化操作 ve.init(); //加载模板,设定模板编码 Template t=ve.getTemplate("test/velocity/simple1.vm","gbk"); //设置初始化数据 VelocityContext context = new VelocityContext(); context.put("name", "张三");         context.put("project", "Jakarta");         //设置输出         StringWriter writer = new StringWriter(); //将环境数据转化输出         t.merge(context, writer);         //简化操作         //ve.mergeTemplate("test/velocity/simple1.vm", "gbk", context, writer ); System.out.println(writer.toString()); } catch (Exception e) { e.printStackTrace(); }


    这里需要注意的是Template t=ve.getTemplate("test/velocity/simple1.vm","gbk");
    这里的gbk不是必须的,但是我的模板中使用了中文所以要指定编码规则。

    其次是
    ve.setProperty(Velocity.RESOURCE_LOADER, "class");
    ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
    很多人初次使用velocity的时候总是找不到模板,而改用绝对路径访问模板
    就是因为没有设置模板存储的地址

    也可以使用Velocity.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, loadpath);
    loadpath是路径地址

    simple1.vm
    Java代码
  • ## 第一个例子  
  • 你好 $name !  
  • $project project.   ## 第一个例子你好 $name !$project project.


    到目前为止一个简单单完整的velocity已经完成
  • 分享到:
    评论

    相关推荐

      velocity入门使用教程

      本人写的velocity教程,包括模板引擎基本使用方法,velocity语法,servlet+velocity例子,spring mvc+velocity例子

      Java进阶教程Velocity快速掌握模板引擎视频

      但是遗憾的是 , 市面上并没有一款详细的Velocity教程 , 特别是最新版本的velocity使用, 相关资料更是少的可怜 ! 所以我们这套课程有如下特色 : l 从基础开始 : 只要有一些java开发的基础就可以学习第一部分velocity...

      velocity教程

      velocity的基本的语法,适合初学者,和想了解velocity模板的,有一定开发基础的人员

      Java Web程序设计教程

      7.2.1velocity基础 146 7.2.2struts2对velocity的支持 153 7.3应用freemarker 155 7.3.1freemarker基础 155 7.3.2struts2整合freemarker 166 7.3.3使用struts2标签设计模板 170 7.4freemarker与velocity的比较...

      Struts2入门教程(全新完整版)

      处理Velocity模板 16 org.apache.struts2.dispatcher.VelocityResult 16 xslt 16 处理XML/XLST模板 16 org.apache.struts2.views.xslt.XSLTResult 16 全局result: 17 动态Result:了解 18 12.异常处理 18 三、在...

      Appfuse教程Appfuse开发.pdf

       它最大的价值就是为我们提供了一个Web开发的新的方式和思路,尽管这些技术在国外都已进很流行了,但在国内能够将Hibernate、 Struts、Spring、DBUnit、Ant、Log4J、Struts Menu、Xdoclet、SiteMesh、Velocity、...

      springboot学习

      Spring Boot 基础教程(基于1.3.x-1.5.x) 快速入门 chapter1:基本项目构建(可作为工程脚手架),引入web模块,完成一个简单的RESTful API 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程 ...

      Maven权威指南 很精典的学习教程,比ANT更好用

      Maven权威指南 Authors Tim O'Brien (Sonatype, Inc.) , John Casey (Sonatype, Inc.) , Brian Fox (Sonatype, Inc.) , Bruce Snyder () , Jason Van Zyl (Sonatype, Inc.) , Juven Xu () Abstract ...

      Freemarker使用手册、api、中文版教程

      模板引擎(如Velocity)的工作机理。 注:由于原文档部分内容直译可能难于被读者理解,所以有些地方采用意译为主,因此在翻译用词上 难 免 可 能 会 有 出 入 , 大 家 对 翻 译 的 内 容 有 任 何 意 见 都 可 以...

      超完整FreeMarker中文教程,代码

      第一部分 模板开发指南 ................................................................................................. 10 第一章 模板开发入门 ............................................................

    Global site tag (gtag.js) - Google Analytics