`
nvry
  • 浏览: 319684 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

freemaker的基本语法1

    博客分类:
  • view
阅读更多

 

FreeMarker 开发笔记


1.freemarker中Request,Session的用法:
java块:request.getSession().setAttribute("qq","http://www.qq.com");
request.setAttribute("qq", "http://www.qq.com");
freemarker代码:
<#if Session ["qq"]?exists>//Request的用法同session
<#if Session ["qq"]=="http://www.qq.com">
<#else>
</#if>
<#else>
</#if>
而通常情况下,Request和Session均可省去不写:
<#if qq?exists>//Request的用法同session
<#if qq=="http://www.qq.com">
<#else>
</#if>
<#else>
</#if>
但是如果他们都设有相同的key值,那么在页面中显示的话,就就应该把他们加上去。
2.freemarker中导入样式表的写法,已经javascript的写法注意:
引入样式表:<LINK href="*.css" type=text/css rel=stylesheet>
添加样式表:
<style type="text/css">
     .imgs img{width:150px ; height:70px;}
</style>
javascript块:
<script language="JavaScript" >
      function method(para){
}
     </script>
3.判断集合:
集合的集合:
      <#if voteWraperObj.itemList?size gt 0>
<#list voteWraperObj.itemList as voteList>
</#list>              </#if>
   对象的集合:
     <#if softDetail?size gt 0>
<#list softDetail as softlist>
        </#list>
     </#if>
关于Session中存放的对象的属性的读取:
    <#if Session ["userweb"].member?exists>
4.switch/case的用法:
   <#switch type>
      <#case "down">
<#include "softdown.ftl">
      <#break>
      <#case "photo">
<#if para=="photoSquare">
    <#include "photo.ftl">
<#elseif para=="photoWidth">
    <#include "photo.ftl">
<#else>
</#if>
      <#break>
   </#switch>
5.时间类型在页面是如何才能正常显示的:
如:${newslist.pubTime?string('yyyy-MM-dd')}
      ${newslist.pubTime?string("yyyy-MM-dd HH:mm:ss")}
6.判断存在与否,以及是否有效:
如:<#if goodslist.f_goods_url?exists&&goodslist.f_goods_url?length gt 0>
7.“default”是如何使用的:
如: ${qq?default("http://www.qq.com")}
即如果属性qq不存在,那么就是要default中的值替代。
8.<#assign>的用法:
<#assign count=0>
<#assign str="12345">
<#list 0..9 as i>
    <#assign count=count+1>
    <#if i gt str?length>
       ${count}
     </#if>
   </#list>
   输出为:7 8 9 10
9.freemarker中如何截取字符串:
方法1:?substring(,)||方法2:[,]
区别:前者包头不包未,后者包头又包未:
实例:<#assign count=0>
<#assign str="12345">
${str[count..count+1]}
${str?substring(count,count+1)}
   输出为:12,1
<#assign count=0>
<#assign str="12345">
${str[count..count]}<br/>
${str?substring(count,count+1)}
   这时输出均为:1
10.freemarker页面中如果包含
   <#assign html=JspTaglibs["/WEB-INF/struts-html.tld"]>
<@html.base/>
    那么它所指向的路径都是相当路径(相对于当前文件)。
11.如何让freemarker模板当html来使用呢:(完整的页面如下)
<html>
<head>
   <#assign html=JspTaglibs["/WEB-INF/struts-html.tld"]>
   <#assign bean=JspTaglibs["/WEB-INF/struts-bean.tld"]>
   <#assign logic=JspTaglibs["/WEB-INF/struts-logic.tld"]>
   <@html.base/>
   <link href="css/main.css" rel="stylesheet" type="text/css" />
   <meta http-equiv="content-type" content="text/html; charset="utf-8">
</head>
<body>
   ---------freemarker代码块
</body>
</html>
12.?使用内建的int(后面讲述)获得整数部分
    如${1.1?int} = 1
13.比较操作符:
1使用=(或==,完全相等)测试两个值是否相等,使用!= 测试两个值是否不相等。
2.对数字和日期可以使用<、<=、>和>=,但不能用于字符串
3.由于Freemarker会将>解释成FTL标记的结束字符,所以对于>和>=可以使用括号来避免这种情况,例如<#if (x > y)>,另一种替代的方法是,使用lt、lte、gt和gte来替代<、<=、>和>=
14.内建函数:
   html:对字符串进行HTML编码
cap_first:使字符串第一个字母大写
    lower_case:将字符串转换成小写
    upper_case:将字符串转换成大写
    trim:去掉字符串前后的空白字符
    size:获得序列中元素的数目
   int:取得数字的整数部分(如-1.9?int的结果是-1)
15.根据缺省格式(由#setting指令设置)将表达式结果转换成文本输出;可以使用内建函数string格式化单个Interpolation
如:<#setting number_format="currency"/>
   <#assign answer=42/>
   输出结果是:$42.00
单个Interpolation:
   ${answer?string.number}
   ${answer?string.currency}
   ${answer?string.percent}?
16. 插入日期值:根据缺省格式(由#setting指令设置)将表达式结果转换成文本输出;可以使用内建函数string格式化单个Interpolation
如:${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}
17.Session中设置对象属性的判断:
     Session ["userweb"].member?exists
18. 插入布尔值:根据缺省格式(由#setting指令设置)将表达式结果转换成文本输出;可以使用内建函数string格式化单个Interpolation.
如:<#assign or=true/>
${or?string("You are right!", "You are wrong!")}
输出为:You are right!
19. 数字Interpolation的#{expr; format}形式可以用来格式化数字,format可以是:

          mX:小数部分最小X位

          MX:小数部分最大X位
如:<#assign x=2.582/>
<#assign y=4/>
#{x; M2}   <#-- 2.58 -->
#{y; M2}   <#-- 4    -->
#{x; m1}   <#-- 2.6 -->
#{y; m1}   <#-- 4.0 -->
#{x; m1M2} <#-- 2.58 -->
#{y; m1M2} <#-- 4.0 -->
20.用户定义指令:宏
   <#macro greet person>
<font size="+2">Hello ${person}!</font>
   </#macro>
作为用户定义指令使用宏变量时,使用@替代FTL标记中的#
   <@greet person="Fred"/> and <@greet person="Batman"/>
   输出为:Hello Fred! and Hello Batman!
21: 宏可以有多参数:
<#macro greet person color>
<font size="+2" color="${color}">Hello ${person}!</font>
</#macro
     可以这样使用该宏变量:
<@greet person="Fred" color="black"/> ,   其中参数的次序是无关的,只能使用在macro指令中定义的参数,并且对所有参数赋值,所以下面的代码是错误的:
   只能使用在macro指令中定义的参数,并且对所有参数赋值,多了或者少了都会出错的,完全赋值。如:<@greet person="Fred"/>为错。
    可以在定义参数时指定缺省值,
    <#macro greet person color="black">
<font size="+2" color="${color}">Hello ${person}!</font>
</#macro>
       这样<@greet person="Fred"/>就正确了,宏的参数是局部变量,只能在宏定义中有效。
22. 嵌套内容

    用户定义指令可以有嵌套内容,使用<#nested>指令执行指令开始和结束标记之间的模板片
<#macro border>
<table border=4 cellspacing=0 cellpadding=4><tr><td>
    <#nested>
</tr></td></table>
</#macro>
这样使用该宏变量:

<@border>The bordered text</@border>
输出结果:

<table border=4 cellspacing=0 cellpadding=4><tr><td>
    The bordered text
</tr></td></table>

<#if indexL_has_next>
 

 

分享到:
评论

相关推荐

    freemarker基本语法整理

    Freemarker 基本语法整理 作为一款流行的模板引擎,Freemarker 在 Struts2 框架中扮演着重要的角色。本文将对 Freemarker 的基本语法进行整理,涵盖输出、逻辑判断、循环遍历、宏等方面的知识点。 输出 在 ...

    FreeMarker模板基本语法

    ### FreeMarker模板基本语法 #### 一、FreeMarker概述与基本用法 **FreeMarker**是一种强大的、基于Java的模板引擎,主要用于动态生成HTML页面,但也支持其他类型的文本格式(如XML、JavaScript、电子邮件等)。它...

    freeMarker语法

    1. 变量表达式 `${...}`:这是FreeMarker中最基本的表达式,用于输出变量的值。例如`${user.name}`会输出用户对象的name属性。 2. 注释 `&lt;!--#...--&gt;`:FreeMarker支持HTML样式的注释,内容不会被渲染到最终输出。 ...

    Freemarker语法规则教程

    ### Freemarker语法规则教程 #### 一、字符串格式化输出 在Freemarker中,字符串格式化是一项非常实用的功能,它可以将数据按照特定的格式进行输出,方便开发者控制最终的展示效果。以下是一些基本的例子: - **...

    freemarker(FTL)常见语法大全

    ### Freemarker(FTL)常见语法详解 Freemarker是一种基于模板引擎技术的软件,用于生成文本输出。它被广泛应用于Web开发中,用来生成HTML页面或其他格式的文档。Freemarker使用简单直观的语法,使得开发者能够轻松...

    freemarker语法完整版

    以下是对`freemarker`语法的详细解释: 1. **变量表达式**: 在Freemarker中,`${}`用于表示变量表达式。例如,如果有一个变量`name`,可以写成`${name}`来输出它的值。如果变量不存在,Freemarker会自动忽略该...

    freemarker语法完整版.doc

    Freemarker语法完整版 Freemarker是基于模板的生成技术,可以根据给定的数据模型生成动态的文本输出。在Freemarker中,存在五种基本概念:Scalars、Hashes、Sequences、Collection Variables和Methods。 1. ...

    java freemarker 语法

    #### 二、Freemarker 的基本语法 ##### 1. 模板指令 - **定义**:模板指令主要用于控制模板的逻辑结构。 - **语法格式**: - 开始标签:`&lt;#directive_name parameter&gt;` - 结束标签:`&lt;/#directive_name&gt;` - 自...

    FreeMarker语法参考

    #### 一、FreeMarker概述与基本语法 FreeMarker是一个用Java编写的模板引擎,它能够将数据模型与表现层(HTML、XML等)分离,使得前端展示逻辑与后端业务逻辑可以独立开发和维护。本文档基于官方资料,对FreeMarker...

    Freemarker常用语法

    以下是对Freemarker常用语法的详细解析,涵盖输出、条件判断、循环、宏定义等多个方面。 ### 输出与格式化 在Freemarker中,使用`${}`来输出变量。例如,`编程"}&gt;`后,`${book.name} --&gt;`会输出`Java编程`。对于...

    freemarker语法完全总结

    1. **模板基本结构** - **文本**:模板中的大部分内容是纯文本,会被直接输出。 - **注释**:使用`&lt;#-- ... --&gt;`包裹的内容为注释,不会出现在最终生成的文档中。 - **插值**:`${...}`或`#{...}`用于插入数据...

    FreeMarker模板文件的组成及基本语法详解(一)

    FreeMarker模板文件的组成及基本语法详解 FreeMarker模板文件由四部分组成:文本、注释、插值和FTL指令。文本是直接输出的部分,注释是以#--开头的格式部分,不会输出。插值是以${...}或#{...}格式的部分,将使用...

    FreeMarker 2.3.18

    - **基本语法及实例**:`freemarker基本语法及实例.mht`提供了一些基础示例,帮助初学者快速上手。 3. **FreeMarker的优点和缺点**: - **优点**:FreeMarker易于学习,模板语言简洁,支持多种数据类型,与Java...

    Velocity 和 FreeMarker区别

    - **FreeMarker**支持直接赋值方式如`$foo`,同时也支持通过表达式进行赋值如`$bar = $foo + 1`。 - **Velocity**的变量赋值方式较为简单,通常采用`#set($foo = "value")`的形式。 2. **循环**: - **...

    freemarker语法完成版

    Freemarker是一个强大的模板引擎,常用于Web开发中动态生成HTML或其他类型的文本。它使用自己的模板语言FTL(FreeMarker Template Language...理解这些基本概念和语法,能帮助开发者高效地使用Freemarker创建动态模板。

    freemarker语法知识

    它的语法简单易懂,主要由四个基本部分构成: 1. **文本**:这是模板中直接输出到最终文档的部分,通常包括HTML代码、样式和脚本等。 2. **注释**:FreeMarker使用`&lt;#-- ... --&gt;`结构进行注释,这些内容在渲染时...

    FreeMarker语法知识

    ### FreeMarker语法知识详解 #### 一、FreeMarker概述 FreeMarker是一种强大的模板引擎,用于生成文本输出。它被广泛应用于Web开发中,用于动态生成HTML页面以及其他类型的文本文件,如XML、JavaScript、电子邮件等...

    freemarker 中文手册 总结 语法

    基本语法 #### 1.1 变量表达式 `${}` Freemarker中最基本的元素是变量表达式,以`${}`包裹。例如`${name}`会输出变量`name`的值。如果变量不存在,Freemarker默认输出空字符串。 #### 1.2 注释 `&lt;!--#--&gt;` 和 `$...

    freemarker入门文档及例子

    一、Freemarker基本概念 1. 模板:Freemarker模板是纯文本文件,其中包含静态文本和控制结构,如条件语句和循环。它们用来生成最终输出。 2. 数据模型:这是Java对象集合,由应用程序提供给Freemarker,模板中的变量...

Global site tag (gtag.js) - Google Analytics