velocity.VelocityUtil
package velocity; import org.apache.velocity.Template; import org.apache.velocity.app.Velocity; import org.apache.velocity.app.VelocityEngine; import org.apache.velocity.context.Context; import org.apache.velocity.tools.ToolManager; import java.io.StringWriter; /** * Created by Administrator on 2015/3/11. */ public class VelocityUtil { public static String exportFixedVelocityWithToolbox() { // 创建引擎 VelocityEngine ve = new VelocityEngine(); // 设置模板加载路径,这里设置的是class下 ve.setProperty(Velocity.RESOURCE_LOADER, "class"); ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); // 进行初始化操作 ve.init(); // 加载模板,设定模板编码 Template t = ve.getTemplate("template/velocity_template.vm", "UTF-8"); // 设置初始化数据 // 加载toolbox ToolManager manager = new ToolManager(); manager.configure("/template/configuration.xml"); Context context = manager.createContext(); context.put("name", "张三"); String[] hobbyArray={"吃饭","喝水","洗澡"}; context.put("hobby", "爱好"); context.put("hobbyArray", hobbyArray); // 设置输出 StringWriter writer = new StringWriter(); // 将环境数据转化输出 t.merge(context, writer); return writer.toString(); } public static void main(String[] args) { System.out.println(exportFixedVelocityWithToolbox());; } }
template/configuration.xml
<toolbox> <tool> <key>date</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.DateTool</class> </tool> </toolbox>
template/velocity_template.vm
$name $hobby: #foreach($hobby in $hobbyArray) ${hobby} #end year : $date.getYear() month: $date.getMonth() month: $date.getDay() current time : $date.get('yyyyMMdd:HHmmss')