这个模板工具确实挺好,写一个入门例子,供想学velocity的同行们参考,有问题的话给我留言:-)
(1)首先是模板(本质就是一个html)
hello.vm
<html>
<body >
#foreach($business in $list)
$business
#end
</body>
</html>
(2)web.xml里面的velocity配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>TestServlet</servlet-name>
<servlet-class>com.urz.test.TestServlet</servlet-class>
<!--属性文件的路径-->
<init-param>
<param-name>org.apache.velocity.properties</param-name>
<param-value>/WEB-INF/velocity.properties</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/TestServlet</url-pattern>
</servlet-mapping>
<servlet>
<!-这里是log4j的配置->
<servlet-name>InitLog4j</servlet-name>
<servlet-class>com.urz.test.InitLog4j</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>InitLog4j</servlet-name>
<url-pattern>/InitLog4j</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>hello.vm</welcome-file>
</welcome-file-list>
</web-app>
(3)velocity.properties
#模板的根目录
file.resource.loader.path = template
# 日志文件路径
runtime.log = log/velocity.log
(4)最主要的来了TestServlet.java
package com.urz.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.context.Context;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
import org.apache.velocity.servlet.VelocityServlet;
/**
* 继承类
*
* @author machao
* @version 0.1 Oct 22, 2008 10:17:51 PM
*/
@SuppressWarnings("deprecation")
public class TestServlet extends VelocityServlet
{
//版本
private static final long serialVersionUID = 1L;
//log4j调试
private Logger log=Logger.getLogger(TestServlet.class);
protected Properties loadConfiguration(ServletConfig config) throws IOException, FileNotFoundException
{
//得到属性文件,找到后要加载
String propsFile = config.getInitParameter(INIT_PROPS_KEY);
Properties prop = new Properties();
if (propsFile != null)
{
String realPath = getServletContext().getRealPath(propsFile);
if (realPath != null)
{
propsFile = realPath;
}
prop.load(new FileInputStream(propsFile));
}
//这里是日志的配置
String log = prop.getProperty(Velocity.RUNTIME_LOG);
if (log != null)
{
log = getServletContext().getRealPath(log);
if (log != null)
{
prop.setProperty(Velocity.RUNTIME_LOG, log);
}
}
// 设置模板文件的位置
String path = prop.getProperty(Velocity.FILE_RESOURCE_LOADER_PATH);
if (path != null)
{
path = getServletContext().getRealPath(path);
if (path != null)
{
prop.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path);
}
}
return prop;
}
/**
* 就像servlet一样,很好理解吧
* 覆盖方法
* @param request
* @param response
* @param ctx
* @return
*/
public Template handleRequest(HttpServletRequest request, HttpServletResponse response, Context ctx)
{
//模板数据,测试使用
String para1="hello";
String para2="machao";
String para3="tianzone software";
List<String> list=new ArrayList<String>();
list.add(para1);
list.add(para2);
list.add(para3);
// 数据 list添加到上下文环境 context 中去,它将在模板页面上显示
//list应和模板上的一样
ctx.put("list",list);
//得到模板对象,注意异常情况
Template template = null;
try
{
//加载模板文件,注意路径喔:-)
template = getTemplate("hello.vm");
}
catch (ParseErrorException e1)
{
log.debug("Error:parse " + e1);
}
catch (ResourceNotFoundException e2)
{
log.debug("the template not found" + e2);
}
catch (Exception e3)
{
log.debug("Error " + e3);
}
return template;
}
}
好了,到此,你是不是感觉到velocity很简单呢:-)
部署好你的项目,开始测试吧,欢迎你进入velocity的大门!
我给一个我写的小例子,下面有项目结构
部署到你的服务器后,访问路径:http://localhost:8080/TestV/TestServlet
- 大小: 21.6 KB
- 大小: 15.6 KB
分享到:
相关推荐
web开发的,Velocity,简单环境实例,已通过运行,
java velocity基于模版开发简单小例子
微软推出的分布式缓存方案velocity 这是我对velocity应用的简单demo 大家可以下载回来试下
JAVAEE Velocity例子工程,一个简单的Velocity例子,用的都是代码,没有用Velocity配置文件
一个很简单容易上手的struts2与velocity集成 实例;很方便初学者进入struts2与velocity集成 学习
SpringMVC3+velocity最简单配置例子,入门级的demo
提供给广大velocity学习爱好者借鉴,参考;
SpringMVC+ibatis+velocity整合例子,虽然比较简单。可以为没有配置好的同学作为参考。
struts2+spring+velocity简单的扩展实例,下载下来就能运行。后续将整合各项技术。敬请期待。
NULL 博文链接:https://xutao5641745.iteye.com/blog/1667997
用Velocity自己改装的jquery+json+springMVC+ibatis简单例子 希望能帮到大家
一个简单的velocity的例子,从这里你可以了解velocity的强大功能
velocity分页的例子,很简单,大家可以看看
本篇文章将通过一个简单显示用户信息的实例整合Spring mvc+mybatis+Maven+velocity+mysql. 一、.Maven工程目录 二、Spring mvc + mybatis +maven实现 1.Mysql数据库表数据
一个简单的struts2 整合 velocity 模板的例子
该项目由maven构建的web项目,实例简单,无数据库连接操作
spring+hibernate+velocity 架构的简单例子
花了所有CSDN积分收集来的Velocity资料集合: Velocity Java开发指南中文版 Velocity Web应用开发指南中文版 Velocity模板使用指南中文版 ...Struts与Velocity的简单集成 使用Velocity开发web程序