Freemarker页面标签总结

 

Freemarker分页宏

 

<#macro page pagination countlist url> 
	<#if pagination.totalPage gt 1>
		<div class="pages" style="margin: 0px auto;">
			<#if pagination.pageNo==1>
				<span class="front" style = "background-color:yellow;">上一页</span>
				<#else>
					<a href = "${url}pageNo=${pagination.pageNo-1}">上一页</a>
			</#if> 
			<#list countlist as countlist>
				<#if pagination.pageNo== countlist>
					<span class="current" style = "background-color:red;">${countlist}</span>
					<#else>
						<a href = "${url}pageNo=${countlist}">${countlist}</a>
				</#if> 
			</#list>
			 				
			<#if pagination.pageNo == pagination.totalPage >
				<span class="front" style = "background-color:red;">下一页</span>
				<#else>
					<a href = "${url}pageNo=${pagination.pageNo+1}">下一页</a>
			</#if> 
			当前页:${pagination.pageNo} 
			总页数:${pagination.totalPage}
			总大小:${pagination.totalCount}
		</div>
		<#else>
	</#if>
</#macro>
 

如果在Freemarker定义了ftl文件自动载入的话,就不需要引入文件了。如果没需要在html里面导入

<#include "/WEB-INF/ftl_lib/page.ftl">

而如果要使用分页的时候调用超级简单:

<@page pagination=pagination countlist= countlist

url = "/huisou/admin/picturecategory/member_toList.action"/>

所有需要分页的地方只需要传递一个参数就可以用分页宏,避免了页面代码臃肿,这也做到了代码重用

 

2:  Freemarker页面标签总结

 

页面自定义数组 ls 为数组名称,可以单引号或者双引号
<#assign ls = ['a', 'b'.....] ?sort >  
判断list是否存在:<#if list ? exists> </#if> 或<#if list ??> </#if>
遍历List:    <#list list as i >${i.name}</#list> 
Js字符转义  <script> alert("${err ? js_string}"); </script>
${i_index} 从0计数-- ${i_index+1}
比较复杂的list  涉及到每几个就换行
第一种实现
<#list  list as a>
	${list.content}	
	<#if (a_index+1)%3=0>
	 <br/>
	<#else>
	</#if>
 </#list>
第二种(推荐Sequence内置的分段器: chunk)
 <#list list?chunk(3) as row> 
	 <div>*
		  <#list row as cell>
	${cell.content}
		  </#list>
	</div>
</#list>
注意:
<#assign seq = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']> 
   		 
<#list seq?chunk(4) as row> 
	<ul> <li>
   		 	<#list row as cell>${cell_index+1}${cell}</#list>
	</li></ul>
</#list>
==============
<#list seq?chunk(4, '<span style = "background-color:red;">暂时没有数据</span>') as row> 
	<ul> <li>
	<#list row as cell>${cell_index+1}${cell}</#list>
	</li></ul>
</#list> 
注意第一种的index索引和list的数量一致,而下面一种和ul的数量 * chunk数一致
最后一个ul数据不够了,但是它的li个数和chunk数 是一样的
 

 

<!--what is freemarker?-->
<script src="/system_res/js/sysoption.js" type="text/javascript"></script>
 <#list list as a>
 		<tr>
	 		<@s.form  method="post" action="sysoption_edit.action" οnsubmit="return checkform(this);">
	          <td align="left">
	          	<input type = "hidden" id = "id"  name = "sys.id" value = "${a.id}"/>${a.id}
	          </td>
	          <td align="left">
	          	<input type = "hidden" name = "sys.name" value = "${a.name}"/>${a.name}
	          </td>
	          <td>
	          		<#if a.setvalue ? length gt 30>
						<input type = "text" style = "width:296px;" name = "myidvalue" value = "${a.setvalue[0..30]}" readOnly=true οndblclick="this.readOnly=false;this.value=token.value;"  title = "${a.setvalue}"/>
						<#else>
						<input type = "text" style = "width:296px;" name = "myidvalue" value = "${a.setvalue}" readOnly=true οndblclick="this.readOnly=false;"/>
					</#if>
					<input type = "hidden"  name = "token"  value = "${a.setvalue}"/>
	          </td>
	          <td><input type = "submit"/></td>
	        </@s.form>	
        </tr>
</#list>


<!--以下是测试数据,优先实现,如果要控制显示的顺序从HTML管理-->
<#--<#include "/WEB-INF/ftl_lib/token_list.ftl">
<@list items=["e.huisou.com", "huisou.com", "dev.huisou.com"]/> 
<@tokenmath.test foo = "myfor" bar = "mybar" baaz = 25*10-100/>  变量的赋值可以是任意正则表达式
-->
<!--test1-->
<#--<#assign user = "Joe Hider">${user}声明变量,并显示--> 
<!--test2-->
<#--
<#import "/WEB-INF/ftl_lib/token_copyright.ftl" as my>
<#assign mail="myother@myother.com">
<@my.copyright date="1999-2002"/> 第一个调用
${my.mail}<br/> 全局变量
${mail} 局部变量,虽然名称都是mail但是Freemarker能区别出来
-->
<!--test3--><#--
<#import "/WEB-INF/ftl_lib/token_copyright.ftl" as my>
${my.mail}<br/>
<#assign mail="update hello micro@update test .com" in my>隐藏全局变量(克隆一份),而不是覆盖, in my只的是token_copyright.ftl文件,mail变量指向克隆过的变量
${my.mail} 
-->
<#--
<#list ["loop 1"] as x> ${x}
	 <#list ["loop 2"] as x>    ${x}    
	 	 	<#list ["loop 3"] as x>     
			 ${x}   
	 </#list>   
	${x} 
</#list> 
${x}
</#list>  内部循环变量隐藏同名的外部循环变量
-->
<#--
<#assign answer=42/> 
${answer?string.currency} 
${answer?string.percent} 
-->


<!--以下是测试数据,优先实现,如果要控制显示的顺序从HTML管理-->
<#--
<#include "/WEB-INF/ftl_lib/token_list.ftl">
<@list items=["e.huisou.com", "huisou.com", "dev.huisou.com"]/> 
<@tokenmath.test foo = "myfor" bar = "mybar" baaz = 25*10-100/>  变量的赋值可以是任意正则表

达式
-->
<!--test1-->
<#--<#assign user = "Joe Hider">${user}声明变量,并显示--> 
<!--test2-->
<#--
<#import "/WEB-INF/ftl_lib/token_copyright.ftl" as my>
<#assign mail="myother@myother.com">
<@my.copyright date="1999-2002"/> 第一个调用
${my.mail}<br/> 全局变量
${mail} 局部变量,虽然名称都是mail但是Freemarker能区别出来
-->
<!--test3-->
<#--
<#import "/WEB-INF/ftl_lib/token_copyright.ftl" as my>
${my.mail}<br/>
<#assign mail="update hello micro@update test .com" in my>隐藏全局变量(克隆一份),而不是覆盖

, in my只的是token_copyright.ftl文件,mail变量指向克隆过的变量
${my.mail} 
-->
<#--
<#list ["loop 1"] as x> ${x}
	 <#list ["loop 2"] as x>    ${x}    
	 	<#list ["loop 3"] as x>     
	 		 ${x}   
	 	</#list>   
	${x} 
	</#list> 
	${x}
</#list>  内部循环变量隐藏同名的外部循环变量
-->
<#--
<#assign answer=42/> 
${answer?string.currency} 
${answer?string.percent} 
-->
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值