import java.io.*;
import java.util.HashMap;
import java.util.Map;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import freeer.template.*;public class free {
 
    private final Log logger = LogFactory.getLog(getClass());
   
    private Configuration freeer_cfg = null;
   
   
   
    public static void main(String[] args)
    {
        //@todo 自己的一个类
        FromForm aItem = null;
       
        //@todo 装入新闻
        //NewsItem = loadNewsItem(1);
           
        free test = new free();
       
        Map root = new HashMap();
        root.put("newsitem", aItem);        String sGeneFilePath = "/tpxw/";
       
        String sFileName = "1.htm";        boolean bOK = test.geneHtmlFile("/tpxw/view.html",root, sGeneFilePath,sFileName);
       
    }
       /**
     * 获取freeer的配置. freeer本身支持classpath,目录和从ServletContext获取.
     */
    protected Configuration getFreeMarkerCFG()
    {
        if (null == freeer_cfg)
        {
            // Initialize the FreeMarker configuration;
            // - Create a configuration instance
            freeer_cfg = new Configuration();            // - FreeMarker支持多种模板装载方式,可以查看API文档,都很简单:路径,根据Servlet上下文,classpath等等
           
            //htmlskin是放在classpath下的一个目录
            freeer_cfg.setClassForTemplateLoading(this.getClass(), "/htmlskin");
        }
       
        return freeer_cfg;
    }    /**
     * 生成静态文件.
     *
     * @param templateFileName 模板文件名,相对htmlskin路径,例如"/tpxw/view.ftl"
     * @param propMap 用于处理模板的属性Object映射
     * @param htmlFilePath 要生成的静态文件的路径,相对设置中的根路径,例如 "/tpxw/1/2005/4/"
     * @param htmlFileName 要生成的文件名,例如 "1.htm"
     */
    public boolean geneHtmlFile(String templateFileName,Map propMap, String htmlFilePath,String htmlFileName )
    {
           //@todo 从配置中取得要静态文件存放的根路径:需要改为自己的属性类调用
        String sRootDir = "e:/webtest/htmlfile" ;
       
        try
        {
            Template t = getFreeMarkerCFG().getTemplate(templateFileName);            //如果根路径存在,则递归创建子目录
            creatDirs(sRootDir,htmlFilePath);
           
            File afile = new File(sRootDir +"/" +htmlFilePath + "/" + htmlFileName);            Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(afile)));            t.process(propMap, out);
        }
        catch (TemplateException e)
        {
            logger.error("Error while processing FreeMarker template " + templateFileName,e);
            return false;
        }
        catch (IOException e)
        {
            logger.error("Error while generate Static Html File " + htmlFileName,e);
            return false;
        }        return true;
    }
   
       /**
     * 创建多级目录
     *
     * @param aParentDir String
     * @param aSubDir  以 / 开头
     * @return boolean 是否成功
     */
    public static boolean creatDirs(String aParentDir, String aSubDir)
    {
        File aFile = new File(aParentDir);
        if (aFile.exists())
        {
            File aSubFile = new File(aParentDir + aSubDir);
            if (!aSubFile.exists())
            {
                return aSubFile.mkdirs();
            }
            else
            {
                return true;
            }
        }
        else
        {
            return false;
        }
    }     }
我现在是生成的时候报错,
2007-9-13 14:20:33 com.free geneHtmlFile
严重: Error while generate Static Html File 1.htm
java.io.FileNotFoundException: Template /tpxw/view.html not found.我想让他能生成到我工程的路径下,应该怎样做,谢了