



免费预览已结束,剩余3页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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乘除、取模* 、/ 、%加减法+ 、-关系运算符、=、(l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心理健康信息安全知识培训课件
- 文化创意产业众创空间建设投资回报预测报告
- 2025-2030家政服务行业直播带货营销效果评估与优化策略
- 2025-2030家政企业数字化转型中的成本控制与效益分析专题报告
- 心梗三项课件
- 深度剖析2025年医药电商平台合规运营模式下的客户关系管理策略研究报告
- 教育与培训行业市场分析报告:职业培训行业竞争格局与未来趋势
- 2025年幼儿教育学试题及答案解析
- 人体肌肉课件
- 2025年食品安全与质量控制模拟试题(附答案)
- 软件开发项目进展汇报
- 2025贵州航空产业城集团股份有限公司旗下子公司贵州安立航空材料有限公司面向社会招聘61人笔试参考题库附带答案详解
- 2025年《资料员》考试题库附答案【模拟题】
- GB/T 22080-2025网络安全技术信息安全管理体系要求
- 楼梯 栏杆 栏板(一)22J403-1
- 江西师范大学研究生院非事业编制聘用人员公开招聘1人(专业学位培养办公室助理)(必考题)模拟卷
- 2021社会保险法知识竞赛试题库及答案
- SF-36生活质量调查表(SF-36-含评分细则)
- 小学数学校本教研的实践与思考(课堂PPT)
- 经历是一种收获的作文5篇
- 血液透析管路及透析器安装操作评分标准
评论
0/150
提交评论