﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-kang5528-文章分类-freearker</title><link>http://www.blogjava.net/kangbaole/category/49534.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 05 Sep 2011 09:21:15 GMT</lastBuildDate><pubDate>Mon, 05 Sep 2011 09:21:15 GMT</pubDate><ttl>60</ttl><item><title>Freemarker</title><link>http://www.blogjava.net/kangbaole/articles/354730.html</link><dc:creator>小康</dc:creator><author>小康</author><pubDate>Wed, 20 Jul 2011 09:21:00 GMT</pubDate><guid>http://www.blogjava.net/kangbaole/articles/354730.html</guid><wfw:comment>http://www.blogjava.net/kangbaole/comments/354730.html</wfw:comment><comments>http://www.blogjava.net/kangbaole/articles/354730.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kangbaole/comments/commentRss/354730.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kangbaole/services/trackbacks/354730.html</trackback:ping><description><![CDATA[<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p>1、</o:p></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">判断对象是否存在(null)<br />&nbsp;&nbsp;&nbsp;&nbsp;<font face="Times New Roman">expr?exsits&nbsp;&nbsp;&nbsp; </font><font face="宋体">返回</font><font face="Times New Roman">true/false</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expr??&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="宋体">返回</font><font face="Times New Roman">true/false<br /></font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p>&nbsp;&nbsp;&nbsp;&nbsp;<font face="Courier New">(user.name)?? 将测试user对象和user属性name是否存在null </font></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">设置默认值：<font face="Times New Roman">expr!default_expr&nbsp;&nbsp;</font><font face="宋体">若对象不存在返回</font><font face="Times New Roman">default_expr<br /><br />2、空值处理方法<br />1）对变量设置默认值：expr!default_expr&nbsp;&nbsp;<br />2）属性classic_compatible=true （若变量为null则替换为空字符串）<br />&nbsp;&nbsp;&nbsp;&nbsp; a.在ftl文件前加入&lt;#setting classic_compatible=true&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; b.class目录下添加freemarker.properties文件：加入classic_compatible=true (struts或spring环境)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c.spring配置：<br />&lt;bean id="freemarkerConfig" <br />&nbsp;&nbsp;&nbsp; class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"&gt; <br />&nbsp; &lt;property name="freemarkerSettings"&gt; <br />&nbsp;&nbsp;&nbsp; &lt;props&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="classic_compatible"&gt;true&lt;/prop&gt; <br />&nbsp;&nbsp;&nbsp; &lt;/props&gt; <br />&nbsp; &lt;/property&gt; <br />&lt;/bean&gt;<br /></font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; color: rgb(0,128,128); font-size: 10.5pt; mso-spacerun: 'yes'"><br />B</span><span style="font-family: '宋体'; color: rgb(0,128,128); font-size: 10.5pt; mso-spacerun: 'yes'">oolean<font face="宋体">类型的值不能直接输出</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">（无法直接转换成<font face="Times New Roman">string</font><font face="宋体">类型）</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: -63pt; margin-bottom: 0pt; margin-left: 72pt" class="p16"><span style="font-family: '宋体'; font-size: 12pt; mso-spacerun: 'yes'">格式化输出：</span><span style="font-family: '宋体'; color: rgb(0,128,128); font-size: 12pt; mso-spacerun: 'yes'">boolean_expr?string(</span><span style="font-family: '宋体'; color: rgb(0,128,128); font-size: 12pt; mso-spacerun: 'yes'">&#8220;</span><span style="font-family: '宋体'; color: rgb(0,128,128); font-size: 12pt; mso-spacerun: 'yes'">yes</span><span style="font-family: '宋体'; color: rgb(0,128,128); font-size: 12pt; mso-spacerun: 'yes'">&#8221;</span><span style="font-family: '宋体'; color: rgb(0,128,128); font-size: 12pt; mso-spacerun: 'yes'">,</span><span style="font-family: '宋体'; color: rgb(0,128,128); font-size: 12pt; mso-spacerun: 'yes'">&#8221;</span><span style="font-family: '宋体'; color: rgb(0,128,128); font-size: 12pt; mso-spacerun: 'yes'">no</span><span style="font-family: '宋体'; color: rgb(0,128,128); font-size: 12pt; mso-spacerun: 'yes'">&#8221;</span><span style="font-family: '宋体'; color: rgb(0,128,128); font-size: 12pt; mso-spacerun: 'yes'">)&nbsp;&nbsp;<br /></span></p><!--EndFragment-->  <img src ="http://www.blogjava.net/kangbaole/aggbug/354730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kangbaole/" target="_blank">小康</a> 2011-07-20 17:21 <a href="http://www.blogjava.net/kangbaole/articles/354730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FreeMarker作为SpringMVC的视图</title><link>http://www.blogjava.net/kangbaole/articles/354726.html</link><dc:creator>小康</dc:creator><author>小康</author><pubDate>Wed, 20 Jul 2011 08:54:00 GMT</pubDate><guid>http://www.blogjava.net/kangbaole/articles/354726.html</guid><wfw:comment>http://www.blogjava.net/kangbaole/comments/354726.html</wfw:comment><comments>http://www.blogjava.net/kangbaole/articles/354726.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kangbaole/comments/commentRss/354726.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kangbaole/services/trackbacks/354726.html</trackback:ping><description><![CDATA[1、freemarker配置<br />&lt;bean id="freemarkerConfig"&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="templateLoaderPath" value="/WEB-INF/views/"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="freemarkerSettings"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;props&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;prop key="defaultEncoding"&gt;UTF-8&lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="url_escaping_charset"&gt;UTF-8&lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="classic_compatible"&gt;true&lt;/prop&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />&lt;/bean<br /><br />2、视图解析器<br />&nbsp;&lt;bean id="viewResolver"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp; class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="cache" value="true"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="prefix" value=""/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="suffix" value=".ftl"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="exposeSpringMacroHelpers" value="true"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="contentType" value="text/html;charset=UTF-8" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="exposeRequestAttributes" value="true" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="exposeSessionAttributes" value="true" /&gt;<br />&lt;/bean&gt;  <img src ="http://www.blogjava.net/kangbaole/aggbug/354726.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kangbaole/" target="_blank">小康</a> 2011-07-20 16:54 <a href="http://www.blogjava.net/kangbaole/articles/354726.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>