velocity生成静态页面代码

首先需要必备的jar包:

web.xml

  <!-- load velocity property -->
  <servlet>
       <servlet-name>velocity</servlet-name>
       <servlet-class>org.apache.velocity.tools.view.servlet.VelocityLayoutServlet</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>velocity</servlet-name>
      <url-pattern>*.vm</url-pattern>
  </servlet-mapping>

velocity.properties
input.encoding=utf-8
output.encoding=utf-8

WebRoot.resource.loader.class = org.apache.velocity.tools.view.servlet.WebappLoader
webapp.resource.loader.path=/WEB-INF/vm/

后台调用:

      String realpath = request.getRealPath("/");
            
            //模板路径
            String urlVm = "/WEB-INF/vm/test.vm"; 
            
            //生成的html的路径,在webroot的html文件夹下面
            String urlHtml = realpath+"/html/test.htm";
            
            //设置模板中的元素
            VelocityContext  context = new VelocityContext();
            context.put("title", "hello word ");
            
            CreateHtml.createHtml(realpath,urlVm,urlHtml,context);    
CreateHtml.java 

package com.velocity;

import java.io.PrintWriter;
import java.util.Properties;

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

public class CreateHtml {  
    public static void createHtml(String realpath, String urlVm,
            String urlHtml, VelocityContext context) {
        
        //加载路径
        Properties  prop = new Properties();
        prop.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, realpath);
        try {
            Velocity.init(prop);
            //初始化vm模板
            Template  template = new Template();
            template = Velocity.getTemplate(urlVm, "utf-8");
            
            //生成html页面
            PrintWriter  writer = new PrintWriter(urlHtml);
            template.merge(context, writer);
            
            //切记关闭流
            writer.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
    }
    
}

这样就在服务器下生成了静态页面,页面就直接访问你生成的页面,例如:http://localhost:8080/html/test.htm

 
原文地址:https://www.cnblogs.com/estellez/p/3942062.html