freemarker解析模板报错问题

在确定模板文件代码无误的情况下,导致报错的原因大概有以下原因:

模板文件编码改变了(比如eclipse中的项目部署到tomcat下,而忘记设置tomcat编码就会导致读取模板文件编码不正确,导致程序解析报错)

解决方法:

Configuration cfg = new Configuration();
cfg.setDefaultEncoding("UTF-8");  

Template template = cfg.getTemplate(templateFileName);
template.setEncoding("UTF-8");  

创建freemarker配置实例时设置好编码,获取模板文件时设置编码,编码要一致,这样可以解决编码的问题。

推荐部署项目时设置tomcat编码为utf-8:

修改server.xml文件

<Connector
        port="8080"
        maxThreads="150"
        minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false"
        redirectPort="8443"
        acceptCount="100"
        debug="0"
        connectionTimeout="20000"
        disableUploadTimeout="true"
        URIEncoding="UTF-8"
/> 

URIEncoding用于解码URL的字符编码,没有指定默认值为ISO-8859-1关于tomcat详细配置参考:http://blog.csdn.net/cicada688/article/details/14451541
时间: 2024-10-25 20:12:26

freemarker解析模板报错问题的相关文章

freemarker自定义标签报错(八)

1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: Unknown directive: #assgin on line: 18, column: 151, in template: tag.ftl in tag.ftl at freemarker.template.Template.<init>(Template.java:174) at freemarker.c

freemarker自定义标签报错(三)

freemarker自定义标签 1.错误描述 freemarker.core.ParseException: Encountered " " at line 14, column 12 in myself.ftl. Was expecting one of: <STRING_LITERAL> ... <RAW_STRING> ... "false" ... "true" ... <INTEGER> ... &l

freemarker自定义标签报错(四)

freemarker自定义标签 1.错误描述 六月 05, 2014 11:31:35 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template processing error: "Error executing macro: write\nrequired parameter: nums is not specified." Error executing macro: write required pa

freemarker自定义标签报错(七)

1.错误描述 六月 09, 2014 11:11:09 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template processing error: "Expression a is undefined on line 27, column 23 in tag.ftl." Expression a is undefined on line 27, column 23 in tag.ftl. The probl

freemarker自定义标签报错(一)

freemarker自定义标签 1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: Unknown directive: #macro on line: 12, column: 101, in template: myself.ftl in myself.ftl at freemarker.template.Template.<init>(Template.java

freemarker自定义标签报错(二)

freemarker自定义标签 1.错误描述 freemarker.core.ParseException: Unexpected end of file reached. at freemarker.core.FMParser.generateParseException(FMParser.java:4702) at freemarker.core.FMParser.jj_consume_token(FMParser.java:4573) at freemarker.core.FMParser

dom4j解析xml报错:Nested exception: org.xml.sax.SAXParseException: White space is required between the processing instruction target and data.

采用dom4j方式解析string类型的xml xml:        String string="<?xmlversion=\"1.0\" encoding=\"UTF-8\"?><ROOT><HEAD><INFO><BUSINESSNO>T065205072015000097</BUSINESSNO><BUSINESSTYPE>T</BUSINESSTYPE&g

PetaPoco的T4模板报错的问题

用NuGet安装好PetaPoco后,利用自带的T4模板生成POCO和dbcontext,配置好T4模板后运行报错. 错误 正在编译转换: 类.结构或接口成员声明中的标记"this"无效错误 正在编译转换: 方法必须具有返回类型错误 正在编译转换: "GeneratedTextTransformation.Write()"必须声明主体,因为它未标记为 abstract.extern 或 partial错误 正在编译转换: 应输入标识符 打开PetaPoco.Core

XML 解析 &amp; 特殊字符报错

在xml文件中,有一些符号是具有特殊意义的,如果直接使用会导致xml解析报错,为了避免错误,我们需要将特殊的字符使用其对应的转义实体进行操作.这些字符如下 <  ==  < >  ==  > & ==  & // &是XML用来转义的,直接使用会报错,必须使用其转义的字符 '  == &apos; "  ==  " 原文地址:https://www.cnblogs.com/yuanpx/p/10086544.html