首页 > 代码库 > velocity生成静态页面代码

velocity生成静态页面代码

首先需要两个必备的jar包:

velocity.jar   velocity-tool-view.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-8output.encoding=utf-8WebRoot.resource.loader.class = org.apache.velocity.tools.view.servlet.WebappLoaderwebapp.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

 

velocity生成静态页面代码