Velocity 第一个例子. 正常运行.

捣鼓了好半天 终于摸着了点门路了. 把demo贴出来给大家一个参考. 欢迎拍转.

1 下载velocity-1.5 ,到Apache网站下载.

2 导入到lib文件夹下,我用得是eclipse 3.2. 文件目录截图如下

3  我是以servlet形式来进行运行得,所以先配置web.xml文件: 即添加一个servlet

  < servlet >
  
< servlet-name > vilocityServlet </ servlet-name >
  
< servlet-class > com.test.servlet.VelocityServletTest </ servlet-class >
  
< init-param >
      
< param-name > org.apache.velocity.properties </ param-name >
      
< param-value > /WEB-INF/classes/velocity.properties </ param-value >
    
</ init-param >
 
</ servlet >
 
< servlet-mapping >
  
< servlet-name > vilocityServlet </ servlet-name >
  
< url-pattern > /velocity/* </ url-pattern >
 
</ servlet-mapping >

4 写模板:htllo.vm, 其实后缀为html也行得.  其中的标签请自己看velocity手册.

< html >
    
< body  >         
        #set($name="shawn")
        Hello, $name  
< br >
        Hello, $name2 
        
        
< hr >
        
        #foreach ($iii in $theList)
        
< tr >
          
< td  bgcolor ="#eeeeee" > $iii </ td >
        
</ tr >
        #end
    
</ body >
</ html >

5 关键是serlvet 了 代码如下:

( 这里我的代码中,说 VelocityServlet 这个类不赞成使用,因为在文字中间面有黑线划过,不知道是什么原因,知道得朋友请告知一下)

 要提及的是载入模板的路径path ,我用的是上下文路径, 当然绝对路径也是可行的.

package  com.test.servlet;

import  java.io.IOException;
import  java.io.FileNotFoundException;
import  java.io.StringWriter;
import  java.util.Properties;
import  java.util.Vector;

import  javax.servlet.ServletConfig;
import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;

import  org.apache.velocity.Template;
import  org.apache.velocity.context.Context;
import  org.apache.velocity.servlet.VelocityServlet;
import  org.apache.velocity.app.Velocity;
import  org.apache.velocity.app.VelocityEngine;

import  org.apache.velocity.VelocityContext;

public   class  VelocityServletTest  extends  VelocityServlet  {

    
protected Properties loadConfiguration(ServletConfig config)
            
throws IOException, FileNotFoundException {

        VelocityEngine engine 
= new VelocityEngine();

        Properties p 
= new Properties();

        String path 
= config.getServletContext().getRealPath("/");

        
if (path == null{
            path 
= "/";
        }


        p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path);

        p.setProperty(
"runtime.log", path + "velocity.log");

        
try {
            engine.init(p); 
// 载入模板的路径path ,即上下文路径
        }
 catch (Exception e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }


        
return p;
    }


    
public Template handleRequest(HttpServletRequest request,
            HttpServletResponse response, Context ctx) 
{
        Template template 
= null;

        Template template2 
= null;

        
try {
            
/**
             * 主要代码
             
*/

            Velocity.init();
            VelocityContext context 
= new VelocityContext();

            String p1 
= "JAVA";
            String p2 
= "C++";
            Vector personList 
= new Vector();
            personList.addElement(p1);
            personList.addElement(p2);

            
/*
             * 将模板数据name, list 放置到上下文环境 context 中去
             
*/

            ctx.put(
"name2""go go, Suceess!");
            ctx.put(
"theList", personList);

            template 
= Velocity.getTemplate("/velocity/hello.vm");

        }
 catch (Exception e) {
            e.printStackTrace();
        }

        
        
// 以下一段代码主要是获得模板的HTML内容
        try {

            template2 
= Velocity.getTemplate("/velocity/hello.vm");

            VelocityContext context 
= new VelocityContext();

            context.put(
"name2""Eiffel Qiu");

            StringWriter writer 
= new StringWriter();

            template2.merge(context, writer);

            System.out.println(writer.toString());

        }
 catch (Exception e) {
            e.printStackTrace();
        }


        
return template;
    }

}

6 准备就绪 那就运行吧.     http://localhost:8080/ZTest/velocity/hello.vm 

效果图为:

至此, 结束 .应该只是一个Hello Word级别的入门,希望跟大家一起进步,一起探讨.

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值