Spring 使用<#ftl>;freemarker模板中的指令

Spring 使用<#ftl>;freemarker模板中的指令,spring,encoding,character-encoding,freemarker,Spring,Encoding,Character Encoding,Freemarker,我试图让Freemarker将我的模板文件解析为UTF-8,但它似乎总是将它们解析为Cp1252 2013-07-30 00:00:00.984 DEBUG freemarker.cache:? Could not find template in cache, creating new one; id=["myFile.ftl"["es_MX",Cp1252,parsed] ] 我搜索并允许我指定编码 我将其添加到模板文件(保存在UTF-8中,BOM保存在Notepad++)中,如下所示:

我试图让Freemarker将我的模板文件解析为UTF-8,但它似乎总是将它们解析为Cp1252

2013-07-30 00:00:00.984 DEBUG freemarker.cache:? Could not find template in cache, creating new one; id=["myFile.ftl"["es_MX",Cp1252,parsed] ]
我搜索并允许我指定编码

我将其添加到模板文件(保存在UTF-8中,BOM保存在Notepad++)中,如下所示:


埃斯蒂马多·乌萨里奥,
正在测试此内容!
但是把这个记在日志里

MessageTemplateException [message=Unable to process template due to Encountered "<#ftl " at line 1, column 4 in myFile.ftl.
Was expecting one of:
    <EOF> 
    <ATTEMPT> ...
    <IF> ...
    <LIST> ...
    <FOREACH> ...
    <SWITCH> ...
    <ASSIGN> ...
    <GLOBALASSIGN> ...
    <LOCALASSIGN> ...
    <_INCLUDE> ...
    <IMPORT> ...
    <FUNCTION> ...
    <MACRO> ...
    <TRANSFORM> ...
    <VISIT> ...
    <STOP> ...
    <RETURN> ...
    <CALL> ...
    <SETTING> ...
    <COMPRESS> ...
    <COMMENT> ...
    <TERSE_COMMENT> ...
    <NOPARSE> ...
    <BREAK> ...
    <SIMPLE_RETURN> ...
    <HALT> ...
    <FLUSH> ...
    <TRIM> ...
    <LTRIM> ...
    <RTRIM> ...
    <NOTRIM> ...
    <SIMPLE_NESTED> ...
    <NESTED> ...
    <SIMPLE_RECURSE> ...
    <RECURSE> ...
    <FALLBACK> ...
    <ESCAPE> ...
    <NOESCAPE> ...
    <UNIFIED_CALL> ...
    <WHITESPACE> ...
    <PRINTABLE_CHARS> ...
    <FALSE_ALERT> ...
    "${" ...
    "#{" ...
 with inputs of {loginUrl=testURL} in myFile.ftl with locale es_MX, code=SUCCESS, arguments=[]]

MessageTemplateException[message=无法处理模板,因为遇到“不要使用BOM。也不要使用
,只有
。但最重要的是,如果大多数模板都是UTF-8格式,只需将FreeMarker的默认编码设置为UTF-8(在春季,类似
…UTF-8
),因此您不需要使用
#ftl

抛出一个错误
遇到“@Daniel那是什么FreeMarker版本?打印什么内容
${.version}
根据WebSphere nodes文件夹中的JAR,它似乎是v2.3.28。它来自prem安装上的IBM连接。
${.version}
给了我一个不存在的错误。看起来IBM再次在核心修改上出错了……但是我找到了一个解决办法,用
\u
转义特殊字符,比如
\u00E4
来表示´´´´。这是
@Daniel FreeMarker甚至不支持
\u
的主要原因。我想这不在templa中te,但在数据源中显示。如果它不知道
${.version}
,那么这是一个非常非常旧的版本。我想你有另一个优先使用的freemarker jar。
MessageTemplateException [message=Unable to process template due to Encountered "<#ftl " at line 1, column 4 in myFile.ftl.
Was expecting one of:
    <EOF> 
    <ATTEMPT> ...
    <IF> ...
    <LIST> ...
    <FOREACH> ...
    <SWITCH> ...
    <ASSIGN> ...
    <GLOBALASSIGN> ...
    <LOCALASSIGN> ...
    <_INCLUDE> ...
    <IMPORT> ...
    <FUNCTION> ...
    <MACRO> ...
    <TRANSFORM> ...
    <VISIT> ...
    <STOP> ...
    <RETURN> ...
    <CALL> ...
    <SETTING> ...
    <COMPRESS> ...
    <COMMENT> ...
    <TERSE_COMMENT> ...
    <NOPARSE> ...
    <BREAK> ...
    <SIMPLE_RETURN> ...
    <HALT> ...
    <FLUSH> ...
    <TRIM> ...
    <LTRIM> ...
    <RTRIM> ...
    <NOTRIM> ...
    <SIMPLE_NESTED> ...
    <NESTED> ...
    <SIMPLE_RECURSE> ...
    <RECURSE> ...
    <FALLBACK> ...
    <ESCAPE> ...
    <NOESCAPE> ...
    <UNIFIED_CALL> ...
    <WHITESPACE> ...
    <PRINTABLE_CHARS> ...
    <FALSE_ALERT> ...
    "${" ...
    "#{" ...
 with inputs of {loginUrl=testURL} in myFile.ftl with locale es_MX, code=SUCCESS, arguments=[]]