云自无心水自闲

天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间!
posts - 288, comments - 524, trackbacks - 0, articles - 6
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

FreeMarker的一些使用心得和技巧

Posted on 2009-04-28 12:19 云自无心水自闲 阅读(3413) 评论(1)  编辑  收藏 所属分类: Java心得体会FreeMarker
1. TagLib的运用(Spring Security)
在web.xml中添加:
    <servlet>
        <servlet-name>JSPSupportServlet</servlet-name>
        <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
     </servlet>

在页面的最上面添加<#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />
使用的时候:
<@security.authorize ifAnyGranted="ROLE_USER,ROLE_ADMIN">
    Hello
</@security.authorize>
注意中间用的是句号,而不再是冒号,我一开始在这里没注意,花了不少时间解决这个问题

2. Context Path的取得
在Google中搜了一下,有人提问题,但是没有得到解决,后来查资料才知道应该是这样写的:
${request.contextPath}

3. 字符串的比较
字符串不能直接比较大小,我原来两个日期字符串的比较就需要先转换成日期型
<#if dateString1?date("yyyy-MM-dd HH:mm:ss") < dateString2?date("yyyy-MM-dd HH:mm:ss")>
  日期小
</#if>

4. <#if><#else>
在if比较时小于号可以直接使用,但是大于号不行,要写成
<#if a &gt; b>
</#if>

5. 在jfinal中使用map
在jfinal中如果像通常情况下使用map, <#list map?keys as key> ${key} </#list>
会发现不仅是所有键值,所有的java方法名也被打印出来,比如:hashcode, getClass, put, get, clone, equals, containsKey, values等等。
正确的方法是:
<#list map.keySet() as key>
${key}
</#list>

if the key of the map is not String, such as Integer or other types, 
we can access the value of the map by map.get( 1 ) instead of map[1]


评论

# re: FreeMarker的一些使用心得和技巧  回复  更多评论   

2009-07-31 10:40 by Heseltine
一下子解决了好多疑难问题,谢谢 n_n

只有注册用户登录后才能发表评论。


网站导航: