`
xpopi
  • 浏览: 62640 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Velocity中加载vm文件的三种方式【转】

阅读更多

Velocity中加载vm文件的三种方式(也可以参考demo文件夹下的例子对照)
Velocity
中加载vm文件的三种方式: 

方式一:加载classpath目录下的vm文件 

Properties p = new Properties(); 

p.put("file.resource.loader.class", 

"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); 

Velocity.init(p); 

... 

Velocity.getTemplate(templateFile); 

方式二:根据绝对路径加载,vm文件置于硬盘某分区中,如:d:\\tree.vm 

Properties p = new Properties(); 

p.setProperty(VelocityEngine.FILE_RESOURCE_LOADER_PATH, "d:\\"); 

Velocity.init(p); 

... 

Velocity.getTemplate("tree.vm"); 


方式三:使用文本文件,如:velocity.properties,配置如下: 

input.encoding = UTF-8 

file.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader 

再利用如下方式进行加载 

Properties p = new Properties(); 

p.load(this.getClass().getResourceAsStream("/velocity.properties")); 

Velocity.init(p); 

... 
Velocity.getTemplate(templateFile); 

方法四: org.apache.velocity.runtime.resource.loader.URLResourceLoader

 

 

 

 

 

2.加载远程文件的问题

解决方案1.

http://mail-archives.apache.org/mod_mbox/velocity-user/200211.mbox/%3CB9F95F44.1AB00%25zodiac@holoweb.net%3E<!--[if !supportNestedAnchors]--><!--[endif]-->

解决方案2

http://badqiu.javaeye.com/blog/691617

http://code.google.com/p/rapid-framework/source/browse/trunk/rapid-framework/src/rapid_framework_common/cn/org/rapid_framework/web/httpinclude/HttpInclude.java

 

public class ApplicationContext extends AbstractInterceptor{

private static final long serialVersionUID = 5728757263270691902L;

private static Logger log = Logger.getLogger(ApplicationContext.class);

@Override

public String intercept(ActionInvocation ai) throws Exception {

       log.info("Oh,yeah. I'm intercepting.");

       try{

              Map<String, Object> application = ai.getInvocationContext().getApplication();

              Object ac = application.get("ac");

              Object httpInclude = application.get("httpInclude");

              log.info(application.get("httpInclude"));

              if(null==ac && null!=application)

                     application.put("ac", new AgencyConstants());

              if(null==httpInclude&&null!=application)

                     application.put("httpInclude",new-HttpInclude(ServletActionContext.getRequest(), ServletActionContext.getResponse()));

              if(null==application)

                     return Action.ERROR;

              return ai.invoke();

       }catch(Exception e){

              log.error(e.getLocalizedMessage());

              e.printStackTrace();

              return Action.ERROR;

       }

}

}

 

 

参考:

http://velocity.apache.org/engine/releases/velocity-1.5/developer-guide.html

http://hailinhe1986-163-com.javaeye.com/blog/657211

 

 

Other Demo

http://www.javaranch.com/journal/2004/03/Velocity-AnIntroduction.html

http://www.suneca.com/article.asp?id=22

分享到:
评论

相关推荐

    Jsp结合Velocity实现依据Word模板文件生成对应数据文件

    3. **读取模板文件**:使用Velocity的`ResourceLoader`加载Word模板文件,这通常涉及到文件系统的操作或者使用URL。 4. **填充数据**:在上下文中添加你需要的数据,例如数据库查询结果、服务器配置信息等。 5. **...

    velocity入门使用教程

    Velocity模板语言(Velocity Template Language,简称VTL)是Velocity的核心,它提供了一种简单但功能强大的模板语言,允许用户通过模板文件引用Java对象属性,结合数据模型动态生成内容。 在本教程中,我们将介绍...

    velocity模板路径

    在Velocity中,模板路径是非常关键的概念,它决定了模板文件在应用程序中的位置。模板路径的设置直接影响到模板的加载和解析,从而影响到最终的输出结果。 1. **模板路径的配置** - 在 Velocity 中,模板路径通常...

    itext加载velocity生成PDF

    然后,创建一个Velocity模板文件(例如:`template.vm`),在其中定义PDF的布局和内容。例如,你可以定义一个段落和一个表格: ``` #set($title = "报告标题") #set($data = $!dataList) #foreach($item in $data) ...

    JAVAEE Velocity例子工程

    同时,这也是一种理解Velocity工作原理的好方式,为以后在更大规模的JAVAEE项目中使用Velocity打下基础。 总结来说,`JAVAEE Velocity例子工程` 提供了一个直接操作 Velocity 的实例,帮助开发者理解如何在JAVAEE...

    velocity-engine-core-2.0.jar

    // 按文件加载 // ve.init(); // Template t = ve.getTemplate("src/velocity/hellovelocity.vm"); ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath"); // 在类路径下加载 ve.setProperty(...

    velocity例子

    - 初始化Velocity:在Java代码中,使用`Velocity.init()`方法初始化Velocity引擎,并加载配置文件。 - 设置上下文:通过`VelocityContext`对象将Java对象添加到上下文中,以便在模板中使用。 - 渲染模板:调用`...

    velocity demo

    1. **配置 Web 应用**:在 Web 应用的配置文件(如 web.xml)中,你需要配置 Velocity 视图解析器(如 VelocityEngineFilter),使得服务器能够识别 .vm 文件。 2. **处理请求**:当用户请求一个 .vm 页面时,服务器...

    Velocity Template的另类用法:生成XML

    3. **加载模板**:读取模板文件并将其加载到Velocity引擎中。 4. **渲染模板**:使用上下文中的数据渲染模板,生成XML字符串。 5. **处理生成的XML**:根据需要,可以选择写入文件、发送到网络或者进行其他处理。 ...

    velocity中faile to load source 和中文乱码问题

    其次,关于Vm文件中的中文乱码问题,这通常是由于模板文件的编码与Velocity读取时所使用的编码不一致导致的。为了解决这个问题,我们需要在获取模板时指定正确的编码方式,例如在示例中使用了`gb18030`: ```java ...

    Velocity

    Velocity 将模板语言(如 `.vm` 文件)与Java代码相融合,通过简单的语法结构,如 `${expression}` 和 `#if`, `#foreach` 等控制结构,让开发者可以在模板中嵌入动态内容。当Velocity引擎处理模板时,会替换这些...

    springmvc+mybatis+velocity整合实例

    整合Spring MVC、MyBatis和Velocity,首先需要在项目的pom.xml文件中引入这三个框架的依赖。然后,配置Spring的ApplicationContext.xml,定义DataSource、SqlSessionFactoryBean、MapperScannerConfigurer等,以连接...

    用在MyEclipse的VM插件

    6. **代码热部署**:VM插件可以实现代码的热部署,即在不重启应用的情况下更新类文件,这在开发过程中节省了大量的时间。 在提供的“velocity插件”中,Velocity可能是指Velocity Engine,这是一个流行的Java模板...

    Velocity教程

    总结,Velocity提供了一种强大的方式来实现Java应用中的视图层与业务逻辑分离,通过简洁的模板语言和上下文管理,使得开发更高效。掌握Velocity的使用,可以提升你的Web开发效率,让你的应用具备更好的可维护性和可...

    velocity官方工具包

    3. **加载模板**: 使用引擎实例加载模板文件,例如`VelocityContext context = new VelocityContext();`和`String templatePath = "path/to/your/template.vm";`。 4. **设置上下文**: 将数据填充到上下文对象中,...

    struts2整合velocity

    同时,需要在`velocity.properties`中配置Velocity的相关参数,如编码、资源加载器等。 **5. 测试与调试** 完成以上配置后,可以通过浏览器访问应用,看看Struts2是否成功地将Action的结果渲染为Velocity模板。如果...

    Velocity学习Web项目

    同时,需要在项目的类路径下放置`velocity.properties`文件,用于配置Velocity的行为,例如模板加载路径和缓存策略。 接下来,创建一个 Velocity模板文件,比如`velocityDemo.vm`。这个文件会包含HTML结构,其中...

    Velocity 生成Action、Serv、Dao代码

    总结来说,`Velocity 生成Action、Serv、Dao代码`是一种高效的方法,利用 Velocity 模板引擎自动化生成Java项目中的常见三层架构代码。通过理解并运用这一技术,开发者可以提高开发效率,减少重复劳动,使代码更加...

    Velocity+servlet简单工程例子

    3. **Velocity配置**:工程中会有`velocity.properties`文件,用来配置Velocity引擎的行为,比如设置模板路径、编码、资源加载器等。 4. **Web.xml**:Web应用的部署描述符,用于配置Servlet和其他Web组件。在这个...

    Velocity之HelloWorld配置

    总结,Velocity提供了一种简单而强大的方式来生成动态内容,通过分离业务逻辑和表示层,促进了代码的可维护性和可扩展性。通过这个“Velocity之HelloWorld配置”,你应该对如何开始使用Velocity有了基本的认识。...

Global site tag (gtag.js) - Google Analytics