freemark就是一个对静态页面上的标签进行动态解析、填充数据的一个框架。

  • 语法(转:http://zhuyuehua.iteye.com/blog/1975251): 

1. freemarker获取list的size :
Java

ArrayList<String> list = new ArrayList<String>();

Freemaker

${list?size}

2. list的遍历:

<#list animals as being>
<tr>
<td>${being.name}${being.price}<td>
</tr>
</#list>

3. 遍历MAP 

<#list map?keys as k>
<option value="${k}">${map[k]}</option>
</#list>

4.list遍历中的下标序号:

_index是list的一个属性

<#list list as a>
${a_index}
</#list> 

5.取LIST中第i个元素的值

${list[i]} 

嵌套时前面要有括号,如下,将字符串变成list,然后取第i个元素的值

${(str?split(","))[i]} 

6. list的嵌套:

<#list jsskList as jsskVO>
<#list kcList as kcVO>
<#if kcVO.kch=jsskVO.kch> (kcVO里有编号和名称,而jsskVO里只有编号)
${kcVO.kcm} 
</#if>
</#list>
</#list>

7. list排序:

升序 .sort_by()

<#list list?sort_by("字段") as x>
</#list>

降序 .sort_by()?reverse

<#list list?sort_by("字段")?reverse as x> 
</#list>

8.item_has_next,size使用:

<#list userList as user>
    <#if !user_has_next>
    共有${userList?size}最后一个用户是:${user.userName}
    </#if>
</#list>
  • 实际项目中的用法:

FreeMarker的用法


\My-SSH-Blog\WebContent\blog\template\template.ftl

  1  <!DOCTYPE HTML>
  2 <html lang="zh-CN">
  3 <head>
  4     <meta charset="UTF-8">
  5     <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1,user-scalable=no">
  6     <title>DX博客</title>
  7     <link rel="stylesheet" type="text/css" media="all" href="${contextPath}/style.css" />
  8     <link rel="stylesheet" type="text/css" media="all" href="${contextPath}/style/css/font-awesome.min.css" />
  9     <link href="http://fonts.googleapis.com/css?family=Open+Sans:400,400italic,300italic,300,700,700italic|Open+Sans+Condensed:300,700" rel="stylesheet" type="text/css">
 10     <!--[if IE 7]>
 11     <link rel="stylesheet" type="text/css" href="${contextPath}/style/css/font-awesome-ie7.min.css"/>
 12     <![endif]-->
 13     <!--[if IE 8]>
 14     <link rel="stylesheet" type="text/css" href="${contextPath}/style/css/ie8.css" media="all" />
 15     <![endif]-->
 16     <!--[if IE 9]>
 17     <link rel="stylesheet" type="text/css" href="${contextPath}/style/css/ie9.css" media="all" />
 18     <![endif]-->
 19     <script type="text/javascript" src="${contextPath}/style/js/jquery-1.7.2.min.js"></script>
 20     <script type="text/javascript" src="${contextPath}/style/js/ddsmoothmenu.js"></script>
 21     <script type="text/javascript" src="${contextPath}/style/js/retina.js"></script>
 22     <script type="text/javascript" src="${contextPath}/style/js/selectnav.js"></script>
 23     <script type="text/javascript" src="${contextPath}/style/js/jquery.backstretch.min.js"></script>
 24     <script type="text/javascript">
 25         $.backstretch("${contextPath}/style/images/bg/16.jpg");
 26     </script>
 27 </head>
 28 <body>
 29 <div class="scanlines"></div>
 30 
 31 <div class="header-wrapper opacity">
 32     <div class="header">
 33         <div class="logo">
 34             <a href="${contextPath}">
 35                 <h1>DX博客</h1>
 36             </a>
 37         </div>
 38 
 39         <div id="menu-wrapper">
 40             <div id="menu" class="menu">
 41                 <ul id="tiny">
 42                     <li class="active">
 43                         <a href="${contextPath}">博客</a>
 44                         <ul>
 45                             <li><a href="${contextPath}/listArticle.action">所有博文</a></li>
 46                         </ul>
 47                     </li>
 48                     <li>
 49                         <a href="#" title="进入我的Github">Github</a>
 50                     </li>
 51                     <li>
 52                         <a href="#" title="进入我的CSDN博客">CSDN博客</a>
 53                     </li>
 54                     <li>
 55                         <a href="${contextPath}/commentUI.action" title="给我留言">留言板</a>
 56                     </li>
 57                     <li><a href="">Menu</a>
 58                         <ul>
 59                             <li><a href="/s/">短网址</a></li>
 60                             <li><a href="/WorkUpload/">作业提交系统</a></li>
 61                         </ul>
 62                     </li>
 63                 </ul>
 64             </div>
 65         </div>
 66         <div class="clear"></div>
 67     </div>
 68 </div>
 69 
 70 <div class="wrapper"><!--
 71     <ul class="social">
 72         <li><a class="rss" href="#" title="博客订阅"></a></li>
 73         <li><a class="qq" href="#" title="QQ"></a></li>
 74         <li><a class="weibo" href="#" title="新浪微博"></a></li>
 75         <li><a class="wechat" href="${contextPath}/public/wechat.jsp" title="微信"></a></li>
 76         <li><a class="email" href="#" title="邮件"></a></li>
 77         <li><a class="phone" href="#" title="手机"></a></li>
 78     </ul>
 79     <div class="intro">Intro...</div>
 80 -->
 81     <div class="content box">
 82         <h1 class="title article-title">${title}</h1>
 83         <div class="info">
 84             <div><a href="${listCategoryArticle}" title="查看该类型博文"><i class="icon-folder-open-alt"></i>:${categoryName}</a></div>
 85             <div><a href=""><i class="icon-user"></i>:${author}</a></div>
 86             <div><i class="icon-time"></i>:${time}</div>
 87         </div>
 88         ${typeString}
 89         ${content}
 90         ${typeString}
 91         <div class="record">
 92             <div>
 93                 <a id="looked" href=""><i class="icon-eye-open"></i> ${looked} 已阅</a>
 94             </div>
 95             &nbsp;&nbsp;
 96             <div>
 97                 <a id="likes" href="javascript:like('${contextPath}/likeAction.action?artid=${articleId}')"><i class="icon-heart-empty"></i> ${likes} 喜爱</a>
 98             </div>
 99             <a class="comment-btn" href="javascript:onComment('#')"><i class="icon-comments"></i> 给我留言</a>
100         </div>
101         <div class="last-next">
102             <div>
103                 <a href="${lastArticle.staticUrl}" title="上一篇">
104                     <i class="icon-double-angle-left"></i>${lastArticle.title}
105                 </a>
106             </div>
107             <div>
108                 <a href="${nextArticle.staticUrl}" title="下一篇">
109                     <i class="icon-double-angle-right"></i>${nextArticle.title}
110                 </a>
111             </div>
112         </div>
113     </div>
114 
115     <div class="sidebar box">
116         <div class="sidebox widget">
117             <h3 class="widget-title">最近更新</h3>
118             <ul class="post-list">
119                 <#list lastArticlesList as la>
120                     <li>
121                         <div class="meta">
122                             <h5><a href="${contextPath}${la.staticUrl}.html">${la.title}</a></h5>
123                             <em>${la.createDate?string("yyyy-MM-dd HH:mm:ss")}</em>
124                         </div>
125                     </li>
126                 </#list>
127                 <li class="more"><a href="${contextPath}/listArticle.action">more</a></li>
128             </ul>
129         </div>
130 
131         <div class="sidebox widget">
132             <h3 class="widget-title"><i class="icon-search icon"></i></h3>
133             <form class="searchform" method="post" action="#">
134                 <input type="text" name="key" value="输入关键字搜索博客..." onFocus="this.value=''" onBlur="this.value='输入关键字搜索博客...'"/>
135             </form>
136         </div>
137 
138         <div class="sidebox widget">
139             <h3 class="widget-title categories">分类</h3>
140             <ul class="categories">
141                 <#list categoryList as cl>
142                     <li><a href="${contextPath}/listArticle.action?categoryId=${cl.id}">${cl.title}</a></li>
143                 </#list>
144             </ul>
145         </div>
146     </div>
147 
148     <div class="clear"></div>
149 
150 </div>
151 
152 <div class="footer-wrapper">
153     <div id="footer" class="four">
154         <a href="/s/">短网址</a>&nbsp;&nbsp;
155         <a href="/WorkUpload/">作业提交系统</a>&nbsp;&nbsp;
156     </div>
157 </div>
158 <div class="site-generator-wrapper">
159     <div class="site-generator">
160         Copyright &copy;2017.DX &nbsp;Design by <a href="http://elemisfreebies.com">elemis.</a> All rights reserved.
161     </div>
162 </div>
163 <script type="text/javascript" src="${contextPath}/style/js/scripts.js"></script>
164 <script type="text/javascript">
165     function onComment(url){
166         var form = document.createElement('form');
167         form.action = url;
168         form.method = "post";
169         form.style.display =  "none";
170 
171         var input = document.createElement("input");
172         input.name = "title";
173         input.value = "${title}";
174         form.appendChild(input);
175 
176         var input2 = document.createElement("input");
177         input2.name = "articleId";
178         input2.value = "${articleId}";
179         form.appendChild(input2);
180 
181         document.body.appendChild(form);
182         form.submit();
183     }
184 </script>
185 </body>
186 </html>
View Code

相关文章:

  • 2022-12-23
  • 2021-07-02
  • 2022-12-23
  • 2022-01-14
  • 2022-12-23
  • 2022-12-23
  • 2022-02-08
  • 2021-10-26
猜你喜欢
  • 2022-01-07
  • 2022-12-23
  • 2021-10-01
  • 2022-01-17
  • 2022-02-26
  • 2021-08-04
相关资源
相似解决方案