velocity-tools spring中使用toolbox的一些破事

来源:互联网 发布:java微信开发教程 pdf 编辑:程序博客网 时间:2024/06/05 07:32

velocaity toobox 一下配置。

toolbox是velocity模板的自定义扩展,有点像jsp自定义jstl(有那么点相同的意思,实际上direcitive才是)。


今天我要说的重点主要是java代码中使用velocity模板引擎merge模板的时候toolbox的使用,至于velocityViewResolver 的配置

请参考http://blog.csdn.net/u012441887/article/details/49665779。

我直接贴出代码

@Configurationpublic class Toolbox {    private Logger logger = LoggerFactory.getLogger(Toolbox.class);    @Bean    public ToolContext toolContext(){        ToolManager toolManager = new ToolManager();        String path = Toolbox.class.getClassLoader().getResource("/").getPath();        path = path.substring(0, path.indexOf("WEB-INF")) + "WEB-INF/conf/toolbox.xml";//很奇怪toolbox.xml不支持classpath路径读取,所以我们使用绝对路径去读取配置文件        toolManager.configure(path);        ToolContext toolContext =  toolManager.createContext();        logger.info("ToolContext is init");        return toolContext;    }}public class VeloctiyToolbox{         @Autowird    private ToolContext toolcontext;//将他设置成 spring的bean        public String mergeTemplate(){        VelocityContext context = new VelocityContext(toolContext);//创建的时候给定toolbox就能起效        context.put("key",value);//设置自己的值           StringWriter sw = new StringWriter();         VelocityEngine engine = velocityConfig.getVelocityEngine();        engine.mergeTemplate(tempLate, "UTF-8", context, sw);        return sw.toString();    }      }

有了上面的代码我们就可以直接在 java代码里面merge velocity 模板。

接下来就是toolbox.xml配置,在WEB-INF下面创建toolbox.xml文件

这边我需要强调的是 velocity1.*跟2.0配置上有区别 而且向下不兼容。贴出2.0配置的代码

                                                                                                                                                                 

完成以上配置,美滋滋的去使用吧,小Tips 一般velocity 用在模板加载,比如短信模板,邮件模板。

原创粉丝点击