- 浏览: 498871 次
- 性别:
- 来自: 山东
文章分类
最新评论
-
wjpiao:
...
HttpClient4模拟登录回贴 -
spring_springmvc:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
Maven-pom.xml -Dependency Scope 区别 -
7454103:
京东通信此次推出的特权卡名为“自由行”,主打无套餐、无合约、无 ...
判断手机号码是否合法--正则 -
di1984HIT:
谢谢啊~学习了~
Maven Nexus 管理员密码重置 -
BigCat2013:
XMLFileUtil.getAttributeValue() ...
java调用sql XML配置文件 笔记
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>
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>
发表评论
-
easyui combobox下拉效果 可输入 模糊查询
2015-12-24 13:03 18075<link rel="stylesheet&q ... -
eclipse设置默认指向/src/main/webapp目录
2015-02-11 09:28 3445改配置文件, 打开.setting 文件夹下的 org.ecl ... -
资料网址
2014-05-20 08:34 681小学一年级数学 http://v.ku6.com/specia ... -
常用的16种颜色关键字
2014-02-21 16:12 1511常用的16种颜色关键字 颜色关键字:aqua 中文含义:水绿 ... -
Eclipse中切换SVN账号
2013-10-14 13:53 1027Eclipse里面的SVN不支持切换账号 进入以下文件夹 ... -
webservcie-wsimport
2013-08-30 12:32 798wsimport wsimport是在JDK的bin目录下的 ... -
Maven-pom.xml -Dependency Scope 区别
2013-06-06 09:38 6047如下图报错,找错 1. 找 ... -
webservice调用异常
2013-06-03 16:27 1269Exception in thread "mai ... -
zkoss之Window 互调
2013-02-19 15:27 1195// zkoss Window 互调 MsgWind ... -
跨职能流程图
2013-01-06 13:20 2277跨职能流程图 -
JAVA_SET_enviroment
2012-12-13 08:40 1020引用wmic ENVIRONMENT create name= ... -
UEdit10 cn
2012-11-30 14:41 965UEdit10 cn -
获得归属地
2012-10-19 09:25 0import java.util.regex.Matcher; ... -
linux下查看window共享文件 图解
2012-02-24 13:51 5038linux下查看window共享文 ... -
Maven Nexus 管理员密码重置
2012-02-15 12:32 11256Maven Nexus 管理员密码重置 1.目录 引用/.. ... -
什么是Web Service?
2011-11-29 17:41 963Web Service 是一种新的web ... -
ftl 语法使用
2011-09-07 12:41 36910ftl 语法使用如下: <PRE class=ftl n ... -
jQuery获取Select选择的Text和 Value
2011-07-29 09:05 1073语法解释: 1. $("#sel ... -
项目技术规格说明书
2011-07-12 09:30 1340技术规格说明书 1. 系统架构 2. 技术架构 ... -
图片缩放 小记
2011-06-10 16:27 1095<html> <head> & ...
相关推荐
从入门一步步的Demo等说明,包含了freemarker开发包中的类的关系说明,开发freemarker应用详细步骤等等,
freemaerker前端开发,个人参考别人的东西做的笔记,今天因为要c币,所有上传上来,有需要的可以看下
java springbootOA办公自动化系统: ...使用Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。
java springbootOA办公自动化系统: ...使用Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。
Freemaker_入门+深入+开发指南+学习笔记.doc FreeMarker标签中文文档.pdf FreeMarker教程.pdf ibatis开发指南(中文版).pdf java web标签大全.CHM jBPM_4.4_开发指南.pdf jquery1.7 中文手册.chm lucene3.0-api.CHM...
- 项目名称:Program 猿笔记 - 开发工具:MyEclipse + Tomcat + JDK 1.7 - 相关技术:Editor.md、Servlet、Freemarker、Mysql、Amaze UI…. ---------------------
Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型 由传统Struts1和WebWork两个经典框架...早期开发模型Servlet+JSP+JavaBean显得力不从心: 流程凌乱、数据传递无序、缺乏辅助功能。 2.MVC模式的轻量级Web应
Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。 主要功能: 系统管理,用户管理,角色列表,考勤管理,...
mysql作为底层数据库,前端使用freemarker模板引擎、Bootstrap作为UI框架, 集成了jpa、mybatis等框架。系统整体比较完整。 功能模块: 系统管理、用户管理、考勤管理、流程管理、公告管理、邮件管理、任务管理、 ...
开发笔记: struts2最好别用最新的版本,否则有可能出现XXClassNotFound的情况,下载的压缩包里面有可以参考的xml文件 eclipse跑程序的时候要注意有可能因为页面缓存导致不显示新页面 maven: struts.xml等文件的...
springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...
是否为struts开发模式 struts.dispatcher.parametersWorkaround Whether to use a Servlet request parameter workaround necessary for some versions of WebLogic (某些版本的weblogic专用)是否使用一个...
3,freemarker 4,bootstrap4.3 5,Javaweb 6,微信小程序 同时会借助当下最热门的微信小程序来作为我们的前端展示。所以课程中也会教给大家一部分小程序开发的知识。大家只需要跟着老师一步步学习,我们既可以学习...
Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。 主要功能: 系统管理,用户管理,角色列表,考勤管理,...
Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。 主要功能: 系统管理,用户管理,角色列表,考勤管理,...
Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。 主要功能: 系统管理,用户管理,角色列表,考勤管理,...
Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。 主要功能: 系统管理,用户管理,角色列表,考勤管理,...
目前部署的是SpringBoot+MyBatis+FreeMarker的博客,样式差不多,特此说明。 预览地址: 前台效果图 后台效果图 后台地址:/admin 或者 /login 为了避免大家删除数据,暂时不给后台账号 使用注意 1.开发工具的选择 ...