改用Freemarker作为项目视图,代替jsp

以前用Struts2作为项目的控制层,在视图方面自然而然得用jsp,外加使用Struts2的标签,很方便也很简单,也强大。
但自从使用SpringMVC后,基本放弃使用Struts2(个人选择,并不代表Struts2不好)。Struts2不用了,那它的标签我也不想用了,那用什么来代替呢?答案就是Freemarker。它是不同于jsp的另外一种视图,而且自带的标签也很强大。在这里简单介绍Freemarker常用的一些标签使用:
[color=orange]<#include path>[/color] 这里path:要包含文件的路径

[color=orange]<#list sequence as item>[/color] 这里sequence:表达式将被自叙序列或集合;item:循环变量的名称
例:
<#list ["aaa","bbb","ccc"] as o>
${o_index+1}--${o}<#if o_has_next>,</#if>
</#list>
这里item_index:是一个包含当前项在循环中的索引数值,item_has_next:辨别当前项是否是序列最后一项的布尔值

[color=orange]<#break>[/color] 用来终止list循环

[color=orange]<#if condition>...<#elseif condition2>...<#else>...</#if>[/color] 使用方式类似Java的if else

Freemarker也可以像jsp那样,引入其它标签库,如:
[color=orange]<#assign s=JspTaglibs["/WEB-INF/spring.tld"]>[/color]
如果实现对Struts2标签依依不舍,也可通过此来引入Struts2标签 :x

还可自定义标签

还有一点就是数据模型,比如日期、布尔值、数字,Freemarker也有特殊的处理方式。
如[color=orange]日期的处理[/color],Freemarker使用内建函数date、time或datetime;若要格式化参数显示,则使用内建函数string,如[color=orange]obj?string("yyyy-mm-dd HH:mm:ss")[/color]
Freemarker也提供了很多很好的用内建函数,也挺常用到,如:
[color=orange]str?substring(from, toExclusive)[/color] 取子串
[color=orange]str?cap_first[/color] 首字母大写
[color=orange]str?uncap_first[/color] 首字母小写

[color=orange]<#assign test1 = "10/25/1995"?date("MM/dd/yyyy")>
<#assign test2 = "15:05:30"?time("HH:mm:ss")>
<#assign test3 = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")> [/color]
${test1}
${test2}
${test3}
输出为:
Oct 25, 1995
3:05:30 PM
Oct 25, 1995 3:05:00 PM

[color=orange]str?ends_with[/color] 以...结尾,如"redhead"?ends_with("head")
返回布尔值true

还是很多,不一一显示,详细请看文档
1.1 处理字符串的内建函数
1.2 处理数字的内建函数
1.3 处理日期的内建函数
1.4 处理布尔值的内建函数
1.5 处理序列的内建函数
1.6 处理哈希表的内建函数
1.7 处理节点(XML)的内建函数
1.8 很少使用的和专家级的内建函数

最后还有一小点使用技巧
替代空值:${(str)!'空值,没有内容'}
判断对象或某属性是否存在:obj?? 或 obj.id?? 返回值是布尔类型值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值