研究hibernatesynchronizer的源码,看到他将velocity模板和编译的类一起打包在jar包中,在获得模板时使用
Xobject.class.getClassLoader().getResourceAsStream("/templates/xx.vm")获得流,然后再将转变成字符串
public static String getStringFromStream(InputStream is) throws IOException {
        if (null == is)
            return null;
        try {
            InputStreamReader reader = new InputStreamReader(is);
            char[] buffer = new char[1024];
            StringWriter writer = new StringWriter();
            int bytes_read;
            while ((bytes_read = reader.read(buffer)) != -1) {
                writer.write(buffer, 0, bytes_read);
            }
            return (writer.toString());
        } finally {
            if (null != is)
                is.close();
        }
    }
最后调用velocity的方法
Velocity.evaluate(Context context, java.io.Writer out, java.lang.String logTag, java.lang.String instring)
从而生成文件。居然不知道velocity有这样的方法,挺无知的,为了路径焦头烂额,终于得解了。总结一下技巧:
1、Xobject.class.getClassLoader().getResourceAsStream("/templates/xx.vm")相对路径获得流;
2、Velocity.evaluate(...)方法使用;
posted on 2006-11-28 14:21 野草 阅读(3056) 评论(0)  编辑  收藏 所属分类: 2shtv

只有注册用户登录后才能发表评论。


网站导航: