`
wjjbfq
  • 浏览: 82131 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

velocity用法

阅读更多

velocity 在web中使用步骤:
 1、添加jar包  velocity-1.6-dep.jar   \lib\log4j-1.2.12.jar

如果不使用velocity-1.6-dep.jar,也可以使用velocity-1.6.jar,但这时需要把\lib下的commons-collections-3.2.1.jar\commons-lang-2.4.jar和oro-2.0.8.jar放入类路径下。 velocity-1.6-dep.jar文件内部已经包含前面三个jar文件的类。如果和其他框架集成,就要使用velocity-1.6.jar,小心冲突。
 
 2、配置模板:名字可以任意取 (模板就是和jsp页面差不多,里面有velocity的表达式语言)
 3、初始化Velocity ,由于只执行一次,可以放在过滤器的init方法中,代码如下:
  try{
   Properties prop = new Properties();
   prop.put("runtime.log", config.getServletContext().getRealPath("/WEB-INF/log/velocity.log"));
   prop.put("file.resource.loader.path", config.getServletContext().getRealPath("/WEB-INF/vm"));
   prop.put("input.encoding", "UTF-8");
   prop.put("output.encoding", "UTF-8");
   Velocity.init(prop);
  }catch( Exception e ){
   e.printStackTrace();
  }
 4、在添加或更新的方法中使用,这样就可以添加完成后生成html页面:
//生成的文件存放在网站根目录的html/product/类别id/
File saveDir = new File(request.getSession().getServletContext().getRealPath("/html/product/"+product.getType().getTypeid()));
如添加产品完成后,(产品,生成后的目录)。
BuildHtmlFile.createProductHtml(product, saveDir);

BuildHtmlFile 代码:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;

import cn.itcast.bean.product.ProductInfo;

public class BuildHtmlFile {
 
 public static void createProductHtml(ProductInfo product, File saveDir){
  try {
   if(!saveDir.exists()) saveDir.mkdirs();
   VelocityContext context = new VelocityContext();
   context.put("product", product);
   Template template = Velocity.getTemplate("product/productview.vm");
   FileOutputStream outStream = new FileOutputStream(new File(saveDir, product.getId()+".html"));
   OutputStreamWriter writer =  new OutputStreamWriter(outStream,"UTF-8");
   BufferedWriter sw = new BufferedWriter(writer);
   template.merge(context, sw);
   sw.flush();
   sw.close();
   outStream.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}

 5、在页面中调用 在页面中可以直接使用 例如的链接访问:如 xx/html/product/2/1.html.

分享到:
评论

相关推荐

    velocity入门使用教程

    通过学习这些文档,你将能够掌握Velocity的基本用法,进一步提升Web开发中的模板处理能力。记住,熟练运用Velocity的关键在于理解和掌握其模板语言、上下文机制以及如何高效地组织和控制模板逻辑。

    Velocity的基本用法

    **Velocity的基本用法** 1. **#set指令**: 用于设置变量,例如`#set($name = "Li Hong")`,这将在上下文中创建一个名为`name`的变量,其值为"Li Hong"。 2. **#if指令**: 用于条件判断,如`#if($age > 18)`表示...

    velocity语法与使用方法

    二是Velocity模板引擎的语法及使用方法。然而,基于题目要求,本回答将着重于解析Velocity的相关知识点,并简要提及Tomcat的部分配置内容作为背景。 ### Tomcat部署项目配置背景 在文档中提到了如何通过修改`...

    Velocity Template的另类用法:生成XML

    然而,它的应用并不仅限于此,正如标题所示,“Velocity Template的另类用法:生成XML”,我们可以利用其强大的文本处理能力来生成XML文档,这种方式在数据转换、报告生成或配置文件制作等方面非常实用。 首先,让...

    velocity为空判断

    在使用Velocity作为视图层处理数据时,常常需要进行空值判断,确保模板能够正确地处理不存在或者值为空的情况。下面我们将详细探讨在Velocity中如何进行空值和空字符串的判断。 ### 1. 判断Velocity变量是否为null ...

    velocity jar包

    然后,使用` VelocityEngine `实例加载并解析模板文件,最后通过`evaluate()`或`mergeProperties()`方法将模板和上下文数据结合,生成最终的输出内容。 Velocity模板语言(VTL)是Velocity的核心,它允许开发者在...

    Velocity 和 FreeMarker区别

    而使用**Velocity**时,为了达到类似的效果,则可能需要开发者自己编写一些辅助性的工具类或方法。 #### 三、模板语法 1. **变量赋值**: - **FreeMarker**支持直接赋值方式如`$foo`,同时也支持通过表达式进行...

    JAVAEE Velocity例子工程

    这个工程旨在通过实际的代码演示,帮助开发者理解并掌握Velocity的基本用法,无需深入学习复杂的配置文件。 在传统的Java Web开发中,视图层通常与业务逻辑和数据层分离,Velocity就扮演了视图的角色,允许开发者将...

    freemarker&velocity的使用

    Freemarker和Velocity是两种广泛使用的模板引擎,它们在Java Web开发中扮演着重要的...通过阅读提供的"freemarker语法.doc"文档,你可以深入了解Freemarker的详细语法和使用方法,进一步提升你在这一领域的专业技能。

    Velocity

    在Velocity模板中,你可以插入变量、控制结构(如条件语句和循环)以及调用方法,这些都会在运行时根据上下文数据动态生成输出。 ### 主要特性 1. **简洁性**:Velocity模板语言语法简单,避免了HTML中常见的...

    Velocity资料

    文件中提到了一些中文资料,如《VelocityJava开发指南中文版》、《Velocity模板使用指南中文版》等,这表明Velocity社区提供了相当完善的中文资料,有助于Java开发者更快速地学习和掌握Velocity的使用方法。...

    velocity-engine-core-2.3-API文档-中英对照版.zip

    使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    velocity-engine-core-2.3-API文档-中文版.zip

    赠送jar包:velocity-engine-core-2.3.jar ...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    Velocity学习Web项目

    在J2EE环境中,Velocity经常与Struts等MVC框架结合使用,以提供更加灵活和高效的视图层实现。在这个项目中,我们将探讨如何将Velocity集成到一个基于Struts 1.x的Web应用中,以便更好地理解和应用这些技术。 首先,...

    velocity Java开发指南中文版

    - **Using the Event Cartridge 使用事件分发器**: 介绍了事件分发器的使用方法,这是一种用于处理模板事件的机制。 #### 九、Velocity Configuration Keys and Values (配置参数名字和值说明) - **Runtime Log ...

    JAVA的Velocity语法学习

    它们会详细介绍Velocity的使用方法、语法特性以及最佳实践,对于初学者来说非常有帮助。同时,Apache官网也有详细的Velocity文档和示例,可以帮助深入理解并熟练运用Velocity。 通过以上介绍,我们可以看到Velocity...

    velocity的学习资料

    - **模板语言**: Velocity使用简单的文本模板语言,允许开发者在模板中插入变量和控制结构。 - **上下文(Context)**: 上下文是模板和Java代码之间传递数据的桥梁,包含所有可供模板使用的变量。 - **指令...

    eclipse中velocity插件

    1. **代码提示和自动完成**:在编写Velocity模板时,插件会提供模板指令、变量和方法的自动补全,有助于减少错误并提高开发速度。 2. **语法高亮和错误检查**:插件能够对Velocity模板进行语法高亮显示,同时实时...

    Velocity用户手册 中文版

    这个用户手册中文版详细介绍了Velocity的使用方法和语法特性。 ** Velocity 的基本概念 ** 1. **模板(Template)**:模板是Velocity的核心,它是HTML或XML等静态页面中嵌入了Velocity指令的文件,用于生成最终的...

Global site tag (gtag.js) - Google Analytics