已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FreeMarker模版语言讲解1. FreeMarker的简单介绍。FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。FreeMarker我们的第一印象是用来替代JSP的,但是与JSP 不同的是FreeMarker 模板可以在 Servlet容器之外使用。可以使用它们来生成电子邮件、 配置文件、 XML 映射等。或者直接生成HTML。虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图)2. FreeMarker 入门。支持的数据类型:字符串、数字、布尔、日期容器:JSON、集合(数组)2.1. View(FreeMarker)渲染的全过程。2.2. 第一个简单的FreeMarker 尝试。Java代码:public class FreemarkerDemo public static void main(String args) throws Exception /构建Freemarker 配置对象Configuration cfg = new Configuration();/设置模版根目录cfg.setDirectoryForTemplateLoading(new File(WebRoot/WEB-INF/ftl); /输出,以方式输出Map outMap = new HashMap();outMap.put(name, Vinux);/加载模板(Freemarker)文件Template template = cfg.getTemplate(demo_1.ftl,UTF-8);/显示生成的数据,/将合并后的数据打印到控制台Writer out = new OutputStreamWriter(System.out); cess(outMap, out);out.flush();FreeMarker代码2.2.第一个简单的FreeMarker 尝试。Hello:$name2.3. 第二个简单的FreeMarker 尝试,Servlet Web方式展现。/创建一个Servletpublic class CDNForFreeMarkerServlet extends HttpServlet private static final long serialVersionUID = 1L;public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException /获取根目录String appPath = request.getSession().getServletContext().getRealPath(/); /构建Freemarker 配置对象Configuration cfg = new Configuration();/设置模版根目录cfg.setDirectoryForTemplateLoading(new File(appPath); cfg.setDefaultEncoding(UTF-8);/输出,以方式输出Map outMap = new HashMap();outMap.put(name, Vinux);/加载模板文件Template template = cfg.getTemplate(demo1.ftl,UTF-8);try /输出页面cess(outMap, response.getWriter(); catch (TemplateException e) e.printStackTrace();FreeMarker代码2.3.第二个简单的FreeMarker 尝试,Servlet Web方式展现。2.3.第二个简单的FreeMarker 尝试,Servlet Web方式展现。你好:$name3. FreeMarker 语法介绍。Freemarker 基本语法是EL表达式,写法和在JSP里写法一致$,自身的语法是以.方式,也可以#tag方式。以“?”作为自身方法调用,以“.”作为属性调用,下面我们来全面的介绍下。 3.1. FreeMarker注释。每个View层都是有自己的注释方式,这个地方提到的注释不同于HTML的注释方式。HTML注释方式在页面查看源码是看的到的。而FreeMarker ,JSP等模版语言的注释都是查看页面源码看不见的。其实建议我们在写代码的时候采用各种模版自身的注释方式来写注释,这样可以达到业务安全的效果。3.2. 自带空字符串(对象)处理。从JSP等其他View层使用过的童鞋们,在使用FreeMarker的时候,都会遇到一个问题,当一个值或者对象为null的时候,如果这个时候去使用就会抛出异常。这个问题上仁者见仁智者见智,谈不上好与不好。FreeMarker自带空的处理方式。v:$v?default(这是一个null对象) v1:$v1v2:$v23.3. If.else 语法FreeMarker中,如果去比较2个值是否相等,那么它必须值相等,并且类型也一致,支持比较的类型有,number(Integer、int、long、Long、double)等数据类型,String,Date。FreeMarker condition表达式比较的是类型和值,类型不一样就会报错,而JSP中则不用,这是个区别。这个值是:1这个值是:2这个值是:不知道这个值是:33.4. List 语法FreeMarker中循环(迭代)的写法和JSP用法一致。格式为,这个i表示从这个集合中,第一个元素到最后一个元素的迭代表示。我们的域名有$domains?size个:$it_index:$it篮球,足球,乒乓球,双色球$it_index:$it3.5. Include 语法页面引入3.6. Assign 语法篮球,足球,乒乓球,双色球$it_index:$it$it_index最后输出的一个值:$index3.7. 类型转换,内置函数使用定义变量:12#assign v3=true,v4= value 1 value ,html=,v5=-1.56/a:b-$(v1?number = 1)?string(类型转换成功,类型转换失败)$(v2?number?is_number)?string(v2是number类型,v2不是number类型)$(v3?is_boolean)?string(v3是Boolean类型,v3不是Boolean类型)$v4内置函数使用:- html:以html方式输出。:$html?html cap_first:首个字母大写:$v4?cap_first lower_case:小写:$v4?lower_case upper_case:大写:$v4?upper_case trim:去掉前后空格:$v4?trim size:集合的长度:$v4?split(1)?size int:返回number类型的整数:$-v5?int json:转JSON:$json?eval.a or $json?evala 当前时间输出:$date?string(yyyy年MM月 HH:mm:dd:sss)3.8. 运算优先级运算符组运算符表达式内置方法、取值index、key、?split、?default等一元前缀运算符+expr、-expr 、!expr乘除、取模* 、/ 、%加减法+ 、-关系运算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省浙里特色联盟2025-2026学年高一下学期4月期中联考生物学试卷(含解析)
- 用户界面设计原则总结
- 《生活处处有哲学》教学设计-高品质版
- 2025新皮肤病理学切片试题及答案
- 2025新国家网络安全知识竞赛题库附含答案(基础题)
- 2026冷冻食品行业消费者购买行为变化供应链管理分析投资布局规划
- 2026中国养老产业供需缺口分析与服务模式创新研究报告
- 2025中医药知识与技能竞赛题库附含参考答案
- 2025新社区工作人员资格真题库与答案
- 江苏省无锡市祝塘中学2026届中考英语最后冲刺模拟试卷含答案
- 浙江省金华市(2026年)辅警协警笔试笔试真题(附答案)
- 养老护理员工作倦怠与应对
- 建筑工程进场材料、构配件和设备质量控制工作标准
- 骨折病人的院前急救
- 吉利并购沃尔沃的协同效应
- svw cpc验收srb311电气movifit sc操作手册
- 中大国际九号
- GB/T 14413-1993船用舷窗
- GB/T 14048.7-2016低压开关设备和控制设备第7-1部分:辅助器件铜导体的接线端子排
- 2022~2023血站上岗证考试题库及答案参考85
- 第五章-钢的热处理及表面处理技术课件
评论
0/150
提交评论