FreeMarker基于view层的开发

<#assign s=JspTaglibs["/WEB-INF/tags/struts-tags.tld"]/> <@s.text name="admin.login.create.web"/> <#assign path="${request.getScheme()+'://'+request.getServerName()+':'+request.getServerPort()+request.getContextPath()+'/'}"> <#assign freemarker="${request.getContextPath()}">

111111111111${path}

一、基于struts2的标签

<@s.form action="test.action" method="post" theme="simple">

<@s.property value="getText('singtel.logout.urls')" />
<@s.token name="token" /> <@s.textfield name="username" id="username" maxLength="10"/>
<@s.select name="userStatus" list=r"#{1:'启用',2:'暂停',3:'销毁'}" required="true" headerKey="-1" headerValue="Choose a question..."/>
<@s.radio name="questionType" list=r"#{'0':'客观题','1':'主观题'}" value="%{questionType == null || questionType == null ? '0' : questionType}" required="true" />
<@s.checkbox id="userBox" name="userBox" />
<@s.submit value="Submit" id="changeEmailButton" cssClass="btn_submit" οnclick="fun()"/>

 

二、基于本身的语法

<#list ["winter", "spring", "summer", "autumn"] as x>${x}

<#assign homepageMap={"ipcat.cn":"IP猫", "ourbooks.cn":"我们的书", "hulian56.com":"互联物流", "qilu56.com":"齐鲁物流" }>

Freemarker的内置函数及用法

一 应用于list的实例 1.1 返回sequence的第一个值. ${testList?first}
1.2 返回sequence的最后一个值. ${testList?last}
1.3.sequence?reverse 将sequence的现有顺序反转,即倒序排序
1.4 返回sequence的大小. ${testList?size}
1.5.sequence?sort 将sequence中的对象转化为字符串后顺序排序
1.6.sequence?sort_by(value) 按sequence中对象的属性value进行排序


<#--freemarker 遍历list并应用list隐含变量item_index --> <#list userList as user> 第${user_index+1} 个用户 UserName:${user.userName}
Password:${user.userPassword}
Age:${user.age}


<#--freemarker 遍历list并应用list隐含变量item_has_next --> <#list userList as user> 第${user_index+1} 个用户 UserName:${user.userName}
Password:${user.userPassword}
Age:${user.age}
<#if !user_has_next> 共用${userList?size} 最后的用户名为:${user.userName}


<#--freemarker 遍历list并按用户年龄升序排序 --> <#list userList?sort_by("age") as user> UserName:${user.userName}
Password:${user.userPassword}
Age:${user.age}


<#--freemarker 遍历list并按用户年龄降序排序 --> <#list userList?sort_by("age")?reverse as user> UserName:${user.userName}
Password:${user.userPassword}
Age:${user.age}


二、Hash的内置函数 例如: <#assign user={"name":"hailang", "sex":"man"}> <#assign keys=user?keys> <#list keys as key> ${key}=${user[key]}


三 操作字符串函数 例如: ${"lyuan"?substring(0)}
${"lyuan"?substring(1)}
1${" lyuan "?trim}1
${"string"?index_of("in")}

四 操作布尔值 <#assign foo=true/> ${true?string("yes", "no")}


如果某段文本中包含大量的特殊符号,FreeMarker提供了另一种特殊格式:可以在指定字符串内容的引号前增加r标记,在r标记后的文件将会直接输出.看如下代码: ${r"${foo}"} ${r"C:/foo/bar"}

FreeMarker的常用指令

2.1 if指令
<#assign age=23> <#if (age>60)>老年人 <#elseif (age>40)>中年人 <#elseif (age>20)>青年人 <#else> 少年人


2.2 switch , case , default , break指令

<#switch age> <#case 60>老年人<#break> <#case 40>中年人<#break> <#case 23>青年人<#break> <#default>我的爱人


2.3 list, break指令
<#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as x> <#if x="星期四"> <#break> <#else> ${x}


2.3 include指令 *表示当前目录下以及所有父目录下的文件
<#include "*/ftl/test.html" encoding= "UTF-8" parse="false">
2.4 noparse指令
看如下的例子: <#noparse> <#list books as book> ${book.name}作者:${book.author}


2.5 setting 指令
<#setting number_format="currency" /> <#assign answer=42 /> ${answer}
${answer?string}
${answer?string.number}
${answer?string.currency}
${answer?string.percent}

2.6 macro , nested , return指令
2.6.1在定义自定义指令时,为自定义指令指定参数, <#macro book booklist> <#--定义一个自定义指令booklist是参数--> <#list booklist as book> ${book}

<@book booklist=["lyuan","jacky wu","lee","zhongguor"] /> <#-- 使用刚刚定义的指令-->


2.6.2可以在使用nested指令时,指定一个或多个循环变量,使用book指令时指定了一个循环变量值
<#macro book> <#nested 1> <#nested 2>

<@book ;x> ${x} .图书

2.6.3return指令用于结束macro指令,一旦在macro指令中执行了return指令,则FreeMarker不会继续处理macro指令里的内容, <#macro book> spring <#return> j2ee

<@book />


三、基于jsp的应用


1.取request范围的对象 <#if Request.requestobject?exists> ${requestobject}


2.取session范围的对象 <#if Session.sesssionobject?exists> <@s.property value="#session.sesssionobject" />


3.取request parameter范围的对象 <#if Parameters.myParameter?exists> ${Parameters.myParameter}

4.${Request.requestobject1?default("123")}

四、基于css应用

 

五、基于js应用

==============================================================================

资料和ppt请到我的资源下载 多谢!!!

==============================================================================

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值