import java.io.IOException;import java.io.StringWriter;import java.util.List;import org.apache.velocity.VelocityContext;import org.apache.velocity.app.Velocity;import org.apache.velocity.exception.MethodInvocationException;import org.apache.velocity.exception.ParseErrorException;import org.apache.velocity.exception.ResourceNotFoundException;public class PublishUtil { private static VelocityContext context ; private static PublishFileWriter fileWriter = new PublishFileWriter(); /** * 生成文件 * * @preserve */ public static void writeFile(List list , String realpath , String fileName , String strTemplate) throws ResourceNotFoundException, IOException, MethodInvocationException { try { Velocity.init(); } catch (Exception e) { e.printStackTrace(); } //初始化 context = new VelocityContext(); StringWriter wr = new StringWriter(); context.put("list", list);// String strTemplate = " <div>$siteid</div><br/>" +// " <div> #foreach( $relist in $list ) $relist #end </div><br/> " +// " <div> #foreach( $vo in $listVo )($velocityCount). ${vo.name} #end </div> <br/>" +// " <div>${vo.id}</div><div>${vo.name}</div><br/>"; try { Velocity.evaluate(context, wr, "mystring", strTemplate); } catch (ParseErrorException e3) { e3.printStackTrace(); } fileWriter.writeFile( wr , realpath , fileName); {// 优化 try { if (context != null) { context = null; } } catch (Exception e) { e.printStackTrace(); } try { if (wr != null) { wr.close(); } } catch (Exception e1) { e1.printStackTrace(); } try { System.runFinalization(); System.gc(); } catch (Exception e2) { e2.printStackTrace(); } } } /** * 生成内容文件 * * @preserve */ public static void writeContent(Object obj , String realpath , String fileName , String strTemplate) throws ResourceNotFoundException, IOException, MethodInvocationException { try { Velocity.init(); } catch (Exception e) { e.printStackTrace(); } //初始化 context = new VelocityContext(); StringWriter wr = new StringWriter(); context.put("obj", obj);// String strTemplate = " <div>$siteid</div><br/>" +// " <div> #foreach( $relist in $list ) $relist #end </div><br/> " +// " <div> #foreach( $vo in $listVo )($velocityCount). ${vo.name} #end </div> <br/>" +// " <div>${vo.id}</div><div>${vo.name}</div><br/>"; try { Velocity.evaluate(context, wr, "mystring", strTemplate); } catch (ParseErrorException e3) { e3.printStackTrace(); } fileWriter.writeFile( wr , realpath , fileName); {// 优化 try { if (context != null) { context = null; } } catch (Exception e) { e.printStackTrace(); } try { if (wr != null) { wr.close(); } } catch (Exception e1) { e1.printStackTrace(); } try { System.runFinalization(); System.gc(); } catch (Exception e2) { e2.printStackTrace(); } } }}