使用FREEMARKER的一些总结

本文解决了Freemarker模板中的三个常见问题:日期类型变量转换为字符串、条件判断语法错误及列表指令未正确闭合的问题,并提供了相应的修正方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题代码: ${student.birthday},STUDENT中BIRTHDAY为DATE类型的 

问题:Can't convert the date to string, because it is not known which parts of the date variable are in use. Use ?date, ?time or ?datetime built-in, or ?string.<format> or ?string(format) built-in with this date. 
The problematic instruction: 
---------- 
==> ${student.birthday} [on line 6, column 44 in pages/test.ftl] 

解决方法:${student.birthday}改为${student.birthday?string('yyyy-MM-dd HH:mm:ss')} 


====================================================================== 

问题代码:<#if ${student.name}=="小傻瓜!">哈哈<#else>heihei</#if> 

问题:freemarker.core.ParseException: Encountered "{" at line 8, column 7 in pages/test.ftl. 
Was expecting one of: 
    ">" ... 
    "." ... 
    "[" ... 
    "(" ... 
    "?" ... 
    "!" ... 
    <TERMINATING_EXCLAM> ... 
    "??" ... 
    "+" ... 
    "-" ... 
    "*" ... 
    "/" ... 
    "%" ... 
    "!=" ... 
    "=" ... 
    "==" ... 
    ">=" ... 
    <ESCAPED_GTE> ... 
    ">" ... 
    <ESCAPED_GT> ... 
    <LESS_THAN_EQUALS> ... 
    <LESS_THAN> ... 
    ".." ... 
    <AND> ... 
    <OR> ... 
    
freemarker.core.FMParser.generateParseException(FMParser.java:4697) 
freemarker.core.FMParser.jj_consume_token(FMParser.java:4568) 
freemarker.core.FMParser.If(FMParser.java:1171) 
freemarker.core.FMParser.FreemarkerDirective(FMParser.java:2372) 
freemarker.core.FMParser.Content(FMParser.java:2618) 
freemarker.core.FMParser.OptionalBlock(FMParser.java:2786) 
freemarker.core.FMParser.Root(FMParser.java:2958) 
freemarker.template.Template.<init>(Template.java:149) 
freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:448) 
freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:361) 
freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:235) 
freemarker.template.Configuration.getTemplate(Configuration.java:487) 
freemarker.template.Configuration.getTemplate(Configuration.java:459) 
freemarker.ext.servlet.FreemarkerServlet.process(FreemarkerServlet.java:410) 

解决方法: 
将其改写为<#if student.name=="小傻瓜!">哈哈<#else>heihei</#if> 

====================================================================== 

问题代码:<#list list as student><#/list> 

问题:freemarker.core.ParseException: Unexpected end of file reached. 
Unclosed list directive. 

解决方法:<#list list as student></#list>((*^__^*) 嘻嘻……,不好意思,写错标签了!)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值