Java Freemarker解析异常

Java Freemarker解析异常,java,freemarker,Java,Freemarker,有时,当我的应用程序运行时,我会遇到以下异常。奇怪的是,错误中给出了值“ylink”,而文件footer.html中给出了值“mylink”。谢谢你的提示和帮助 footer.html: <a href="<#if array.mylink??>${array.mylink}</#if>">click</a> 例外情况: com.sannin.exception.TechnicalException: com.sannin.temp

有时,当我的应用程序运行时,我会遇到以下异常。奇怪的是,错误中给出了值“ylink”,而文件footer.html中给出了值“mylink”。谢谢你的提示和帮助

footer.html:

<a href="<#if array.mylink??>${array.mylink}</#if>">click</a>

例外情况:

com.sannin.exception.TechnicalException: 
    com.sannin.template.Renderer.render(Renderer.java:78) ~[tools-0.1.jar:na]
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:700) ~[spring-aop-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) ~[spring-tx-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) ~[spring-tx-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) ~[spring-tx-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:633) ~[spring-aop-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at com.sannin.listener.Event.onMessage(Event.java:69) ~[Event.class:na]
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:562) ~[spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:500) ~[spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:468) ~[spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325) [spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263) [spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1101) [spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1093) [spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:990) [spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
Caused by: freemarker.core._MiscTemplateException: Error parsing included template "default/../../footer.html":
Parsing error in template "footer.html" in line 7, column 1:
Encountered "ylink", but was expecting one of:
    "}"
    "."
    "["
    "("
    "?"
    "!"
    <TERMINATING_EXCLAM>
    "??"
    "+"
    "-"
    "*"
    "/"
    "%"
    "!="
    "="
    "=="
    ">="
    <ESCAPED_GTE>
    ">"
    <ESCAPED_GT>
    <LESS_THAN_EQUALS>
    <LESS_THAN>
    ".."
    <AND>
    <OR>

The failing instruction:
==> #include "../../footer.html"  [in template "default/email.html" at line 24, column 4]
    at freemarker.core.Include.accept(Include.java:162) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.Environment.visit(Environment.java:265) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.MixedContent.accept(MixedContent.java:93) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.Environment.visit(Environment.java:265) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.Environment.process(Environment.java:243) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.template.Template.process(Template.java:277) ~[freemarker-2.3.20.jar:2.3.20]
    com.sannin.template.Renderer.render(Renderer.java:78) ~[tools-0.1.jar:na]
    ... 31 common frames omitted
Caused by: freemarker.core.ParseException: Parsing error in template "footer.html" in line 7, column 1:
Encountered "ylink", but was expecting one of:
    "}"
    "."
    "["
    "("
    "?"
    "!"
    <TERMINATING_EXCLAM>
    "??"
    "+"
    "-"
    "*"
    "/"
    "%"
    "!="
    "="
    "=="
    ">="
    <ESCAPED_GTE>
    ">"
    <ESCAPED_GT>
    <LESS_THAN_EQUALS>
    <LESS_THAN>
    ".."
    <AND>
    <OR>
    at freemarker.core.FMParser.generateParseException(FMParser.java:4672) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.FMParser.jj_consume_token(FMParser.java:4543) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.FMParser.StringOutput(FMParser.java:1079) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.FMParser.Content(FMParser.java:2550) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.FMParser.OptionalBlock(FMParser.java:2761) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.FMParser.If(FMParser.java:1174) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:2347) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.FMParser.Content(FMParser.java:2593) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.FMParser.OptionalBlock(FMParser.java:2761) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.FMParser.Root(FMParser.java:2933) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.template.Template.<init>(Template.java:193) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:419) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:330) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:205) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.template.Configuration.getTemplate(Configuration.java:740) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.Environment.getTemplateForInclusion(Environment.java:1694) ~[freemarker-2.3.20.jar:2.3.20]
    at freemarker.core.Include.accept(Include.java:159) ~[freemarker-2.3.20.jar:2.3.20]
    ... 37 common frames omitted
com.sannin.exception.TechnicalException:
render(Renderer.java:78)~[tools-0.1.jar:na]
在org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)~[spring-core-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:700)~[spring-aop-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:150)~[spring-aop-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)~[spring-tx-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.transaction.interceptor.TransactionSpectSupport.invokeWithinTransaction(TransactionSpectSupport.java:260)~[spring-tx-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)~[spring-tx-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:172)~[spring-aop-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:633)~[spring-aop-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在com.sannin.listener.Event.onMessage(Event.java:69)~[Event.class:na]
在org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:562)~[spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:500)~[spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:468)~[spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
位于org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)[spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
位于org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263)[spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1101)[spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.ExecuteongLoop(DefaultMessageListenerContainer.java:1093)[spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:990)[spring-jms-3.2.11.RELEASE.jar:3.2.11.RELEASE]
在java.lang.Thread.run(Thread.java:744)[na:1.7.0_51]
原因:freemarker.core.\u MiscTemplateException:分析包含的模板“default/../../footer.html”时出错:
在第7行第1列的模板“footer.html”中分析错误:
遇到“ylink”,但预期出现以下情况之一:
"}"
"."
"["
"("
"?"
"!"
"??"
"+"
"-"
"*"
"/"
"%"
"!="
"="
"=="
">="
">"
".."
失败的指令:
==>#包括“../../footer.html”[在第24行第4列的模板“default/email.html”中]
在freemarker.core.Include.accept(Include.java:162)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.Environment.visit(Environment.java:265)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.MixedContent.accept(MixedContent.java:93)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.Environment.visit(Environment.java:265)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.Environment.process(Environment.java:243)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.template.template.process(template.java:277)~[freemarker-2.3.20.jar:2.3.20]
render(Renderer.java:78)~[tools-0.1.jar:na]
…省略了31个公共帧
原因:freemarker.core.ParseException:第7行第1列的模板“footer.html”中的分析错误:
遇到“ylink”,但预期出现以下情况之一:
"}"
"."
"["
"("
"?"
"!"
"??"
"+"
"-"
"*"
"/"
"%"
"!="
"="
"=="
">="
">"
".."
在freemarker.core.FMParser.generateParserException(FMParser.java:4672)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.FMParser.jj_消费_令牌(FMParser.java:4543)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.FMParser.StringOutput(FMParser.java:1079)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.FMParser.Content(FMParser.java:2550)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.FMParser.OptionalBlock(FMParser.java:2761)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.FMParser.If(FMParser.java:1174)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.FMParser.FreemarkerDirective(FMParser.java:2347)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.FMParser.Content(FMParser.java:2593)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.FMParser.OptionalBlock(FMParser.java:2761)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.core.FMParser.Root(FMParser.java:2933)~[freemarker-2.3.20.jar:2.3.20]
在freemarker.template.template.(template.java:193)~[freem