首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

freemarker导出word时报出错误求帮助

2012-12-19 
freemarker导出word时报出异常求帮助!上代码先(直接从网上粘的自己稍作修改):package example import jav

freemarker导出word时报出异常求帮助!
上代码先(直接从网上粘的自己稍作修改):


package example;

 

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.io.Writer;

import java.util.HashMap;

import java.util.Map;

import freemarker.template.Configuration;

import freemarker.template.Template;

import freemarker.template.TemplateException;

 

public class DocumentHandler {

   private Configuration configuration = null;

   public DocumentHandler() {

      configuration = new Configuration();

      configuration.setDefaultEncoding("utf-8");

   }

 

   public void createDoc() {

      // 要填入模本的数据文件

      Map dataMap = new HashMap();

      getData(dataMap);

      // 设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,

      // 这里我们的模板是放在com.havenliu.document.template包下面

      configuration.setClassForTemplateLoading(this.getClass(),
            "/ccc/");

      Template t = null;

      try {

         // test.ftl为要装载的模板

         t = configuration.getTemplate("niuwode.ftl");

         t.setEncoding("utf-8");

      } catch (IOException e) {

         e.printStackTrace();

      }

      // 输出文档路径及名称

      File outFile = new File("E:/test.doc");

      Writer out = null;

      try {

         out = new BufferedWriter(new OutputStreamWriter(

                new FileOutputStream(outFile), "utf-8"));

 

      } catch (Exception e1) {

         e1.printStackTrace();

      }

      try {

         t.process(dataMap, out);

         out.close();

      } catch (TemplateException e) {

         e.printStackTrace();

      } catch (IOException e) {

         e.printStackTrace();

      }


   }

 

   /**

    * 注意dataMap里存放的数据Key值要与模板中的参数相对应

    * 

    * @param dataMap

    */

   private void getData(Map dataMap) {

      dataMap.put("title_name", "用户信息");

      dataMap.put("user_name", "张三");

      dataMap.put("org_name", "微软公司");

      dataMap.put("dept_name", "事业部");

   }

   public static void main(String[] args) {
// TODO Auto-generated method stub
   DocumentHandler dh = new DocumentHandler();
   dh.createDoc();
}
}



报出的异常是:
freemarker.core.ParseException: Encountered "<" at line 3, column 3011 in niuwode.ftl.
Was expecting one of:
    <STRING_LITERAL> ...
    <RAW_STRING> ...
    "false" ...
    "true" ...
    <INTEGER> ...
    <DECIMAL> ...
    "." ...
    "+" ...
    "-" ...
    "!" ...
    "[" ...
    "(" ...
    "{" ...
    <ID> ...
    
at freemarker.core.FMParser.generateParseException(FMParser.java:4697)
at freemarker.core.FMParser.jj_consume_token(FMParser.java:4568)
at freemarker.core.FMParser.UnaryExpression(FMParser.java:323)
at freemarker.core.FMParser.MultiplicativeExpression(FMParser.java:435)
at freemarker.core.FMParser.AdditiveExpression(FMParser.java:385)
at freemarker.core.FMParser.RangeExpression(FMParser.java:556)
at freemarker.core.FMParser.RelationalExpression(FMParser.java:511)
at freemarker.core.FMParser.EqualityExpression(FMParser.java:476)
at freemarker.core.FMParser.AndExpression(FMParser.java:585)
at freemarker.core.FMParser.OrExpression(FMParser.java:608)
at freemarker.core.FMParser.Expression(FMParser.java:221)
at freemarker.core.FMParser.StringOutput(FMParser.java:1061)
at freemarker.core.FMParser.Content(FMParser.java:2575)
at freemarker.core.FMParser.OptionalBlock(FMParser.java:2786)
at freemarker.core.FMParser.Root(FMParser.java:2958)
at freemarker.template.Template.<init>(Template.java:149)
at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:457)
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:370)
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:238)
at freemarker.template.Configuration.getTemplate(Configuration.java:493)
at freemarker.template.Configuration.getTemplate(Configuration.java:458)
at example.DocumentHandler.createDoc(DocumentHandler.java:64)
at example.DocumentHandler.main(DocumentHandler.java:139)
Exception in thread "main" java.lang.NullPointerException
at example.DocumentHandler.createDoc(DocumentHandler.java:96)
at example.DocumentHandler.main(DocumentHandler.java:139)

求帮助啊!本人新手菜鸟一枚。。。
------最佳解决方案--------------------


freemarker.core.ParseException——这个意思就是转换错误,你可能某个freemarker的表达式写得有问题
[其他解释]
自己顶一下,求解答啊
[其他解释]
没人能给点意见吗
[其他解释]

引用:
freemarker.core.ParseException——这个意思就是转换错误,你可能某个freemarker的表达式写得有问题


我只是用了一个XML转成ftl格式的模板,错误位置(LINE 3 COLUMN 3011)是${title_name}中的${这个位置

热点排行