代码改变世界

FreeMarker template error

2018-07-13 14:39  Summer1218  阅读(5741)  评论(0编辑  收藏  举报

在使用freemarker的过程中经常会见到如下错误:

Xml代码  收藏代码
  1. 11 十二月 2015 15:53:09,674 ERROR freemarker.runtime:98 - Error executing FreeMarker template  
  2. FreeMarker template error:  
  3. The following has evaluated to null or missing:  
  4. ==> sex  [in template "freemarker3.html" at line 10, column 3]  
  5.   
  6. Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??  

模板代码如下:

Html代码  收藏代码
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset="UTF-8">  
  5. <title>freemarker demo</title>  
  6. </head>  
  7. <body>  
  8. ${username} <br />  
  9. ${age}<br />  
  10. ${sex}  
  11. </body>  
  12. </html>  

 根本原因: sex没有设置值,所以报错

解决方法:

在未声明的变量后面增加叹号

Html代码  收藏代码
  1. ${sex!}  

 也可以设置默认值,在叹号后面增加默认值

Html代码  收藏代码
  1. ${sex!'abc'}