freemarker 空值处理

2015-10-09|来源:

先看示例:

${user.name?if_exists },

${user.name?default(‘领悟书生’)}//默认值领悟书生
${ user.name!"www.656463.com"}//默认值www.656463.com


如果freemarker出现空值不处理的时候,会报empty Value Expression xxx is undefined


freemarker中空值的多种处理方法:

1、使用和上面示例一样的处理方法,也是用得最多的方法

   ${ user.name!"www.656463.com"}

2、使用escape对所有的变量进 空值处理

   <#escape x as x!""></#escape> 全部替换为空字符串

   <#noescape></#noescape> 如果不替换

  1. <#escape identifier as expression>  

  2.  ...  

  3.  <#noescape>...</#noescape>  

  4.  ...  

  5. </#escape>  

  1. <#escape x as x?html>  

  2.  First name: ${firstName}  

  3.  <#noescape>Last name: ${lastName}</#noescape>  

  4.  Maiden name: ${maidenName}  

  5. </#escape>  


3、设置classic_compatible=true把null替换为空字符串

3.1、通过Configuration设置classic_compatible=true

   Configuration cfg = new Configuration(); cfg.setClassicCompatible(true);//设置属性

3.2、把Environment的setClassicCompatible设置classic_compatible=true

   Environment env = template.createProcessingEnvironment(root, out);
  env.setClassicCompatible(true);

3.3、在ftl文件的前面加入<!--#setting classic_compatible=true-->

3.4、通过spring的配置文件设置classic_compatible=true

<bean id="freemarkerConfig"
 class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
  <property name="freemarkerSettings">
    <props>
      <prop key="classic_compatible">true</prop>
    </props>
  </property>
</bean>

3.5、在classpath下添加freemarker.properties文件,加入classic_compatible=true



相关问答

更多

springmvc整合freemarker怎么弄

一、 用macro实现自定义指令,例如: 自定义指令可以使用macro指令来定义。 <#macro greet person> <font size="+2">Hello &#36;{person}!</font> </#macro> macro指令自身不打印任何内容,它只是用来创建宏变量,所以就会有一个名为greet的变量。 使用这个宏: <@greet person="Fred"/> 会打印出: <font size="+2">Hello Fred!</font> 二、用java代码标签实现自 ...

java freemarker用模板生成静态html页面

freemarker是data+model=输出。需要替换你模型的所有代号的,替换一次就行了,你的asp的eval实际上也是替换

mysql 空值判断

同意楼上的判断,可能你的数据 的值就是 'null' 出现这种情况的可能是,数据是从哪儿导入的。毕竟没有谁 这么无聊, 把'null' 写入name列。

求maven+springmvc+mybatis+freemarker小例子

网络不好,里面的java和静态文件我都删除了. 只有配置文件...有什么问题可以继续追问, 很抱歉,回答者上传的附件已失效

专题教程

JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
Gson教程
快速了解 jdk8 新特征

相关文章

更多

最近更新

更多