Freemarker与Struts2整合标签中不能使用escape="false" __续(Reason)

      我在2011年05月24日的一篇文章(http://blog.csdn.net/liuyuhua0066/archive/2011/05/24/6443155.aspx)中提到Freemarker与Struts2整合标签中不能使用escape="false",原文中提到:

     

      使用<@s.property value="news.content" escape="false"/>时,页面会报argument type mismatch错。可是为什么不能用escape="false"?查找好多资料,都没有很好的解释。

 

      今天抽时间查了查,原因以及解释如下:

 

      Freemarker在引用struts2的的<s:property>时,是可以用escape="false"的,只不过引用的形式变了,不能是

      <@s.property value="news.content" escape="false"/>

      而应该是

      <@s.property value="news.content" escape=false/>

       因为:freemarker是将false作为其布尔型的一个值,而布尔型是不能加引号的,如果加了引号在模板解释的时候也就会出现argument type mismatch的错误了。

      Ok!OVER!

你可能感兴趣的:(freemarker,struts)