1. .ftl文件 是什么文件
1. ftl是Freemarker模板的文件后缀名 2. FreeMarker其实是一种比较简单的网页展示技术,说白了就是网页模板和数据模型的结合体。
这种结合模式的好处就是,分离了网页界面设计人员和编程人员的工作,让他们各司其职。 3. FreeMarker大致的工作方式是,网页模板里面嵌入了数据模型中的数据、FreeMarker自定义流程控制语言、FreeMarker自定义的操作函数等等,在装载网页的时候,FreeMarker模板自动从数据模型中提取数据,并解释整个网页为HTML页面。
而且,FreeMarker并不是只能生成HTML页面,它也可以生成各种文本,如XML/RTF/Java源代码等。
2. .ftl文件 是什么文件
freemarker的文件一般以后缀ftl,ftl文件的头上要写
<#assign ww=JspTaglibs["/WEB-INF/webwork.tld"] /
这样才能在ftl中使用webwork的tag。
freemarker确实是不错的模版语言引擎,尤其是处理对象图很方便,处理xml也很方便,还支持xpath
FreeMarker 是一个模版引擎,一个基于文本的模板输出工具(生成任意的HTML表单代码)。它是一个Java package,面向Java程序员的class library。它本身并不是针对最终用户的应用,而是允许程序员将其嵌入到他们的产品中。
FreeMarker被设计用来生成HTML Web页面,特别是基于MVC(Model View Controller)模式的应用程序。使用 MVC 模式作为动态的WEB页面的想法,是为了分隔页面设计者 (HTML 设计者) 和程序员。.每个人做自己擅长的那一部分。设计者可以不通过程序员的改变或修改代码来改变网页的样子,因为应用逻辑(Java程序)和页面设计(FreeMarker 模版)是分开的。模板不会被复杂繁琐的程序框架所破坏。即使当一个项目的程序员和HIMTL页面的制作者是同一个人时,这种分隔也是很有用,因为这样有助于保持应用的清晰并易于维护。
尽管FreeMarker有一些编程的能力,但它并不是一个象PHP那样的成熟的编程语言。与Java不同的是,Java程序准备用来显示的数据(如SQL queries),而Freemarker仅是生成文本页,这个文本页显示用于模板的预备数据。
FreeMarker 不是一个 Web 应用框架,而更适合充当 Web 应用框架里的一个组件的角色,但 FreeMarker 引擎本身对 HTTP 或 servlets 并不关心,它仅仅是生成文本。在非 Web 应用环境中它同样能够展示完美的用途。然而值得注意的是:我们为使用 FreeMarker 提供了方便的解决方案,作为 Model2 框架(如 Struts )的视图组件,你也可以在模版中使用 JSP 标签。
FreeMarker 是免费的,有 BSD-style license 。它是由 OSI 认证的开源软件。
3. 使用java生成word文档中的ftl怎么写
Java语言提供了一种强大的注释形式:文档注释。
可以将源代码里的文档注释提取成一份系统的API文档。我们在开发中定义类、方法时可以先添加文档注释,然后使用javadoc工具来生成自己的API文档。
文档注释以斜线后紧跟两个星号(/**)开始,以星号后紧跟一个斜线(*/)作为结尾,中间部分全部都是文档注释,会被提取到API文档中。自行搜索一下javadoc即可,示例如下:1234567891011121314151617181920212223242526272829/** * 类描述 * * @author 作者 * @version 版本 */public class DemoClass { /** * 内部属性:name */ private String name; /** * Setter方法 * @return name */ public String getName() { return name; } /** * Getter方法 * @param name */ public void setName(String name) { this.name = name; }}。
4. freemarker 导出word 文档 怎么写
将要导出的Word另存为xml格式的文件,打开xml 在其中添加freemarker标签,然后另存为outChairDoc.ftl文件.第一步要加入Freemarker.jar包。
Servlet代码如下:在outChairDoc.ftl放在包cn.skyclass.jiaowu.freemarker.template下public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { configuration = new Configuration(); configuration.setDefaultEncoding("utf-8"); try { createDoc(response); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }}public void createDoc(HttpServletResponse response) throws Exception {// 要填入模本的数据文件 Map dataMap = new HashMap(); dataMap.put("docTitle", "fdfdfdfdfdfdf用户信息"); List list = new ArrayList(); ChairInfo chairInfo = new ChairInfo(); chairInfo.setChairTitle("dfdfd"); chairInfo.setTeacherName("tea"); chairInfo.setStartTime(new Date()); chairInfo.setPlace("dfdfd"); list.add(chairInfo); dataMap.put("chairInfoList", list); // 设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,// 这里我们的模板是放在com.havenliu.document.template包下面configuration.setClassForTemplateLoading(this.getClass(),"/cn/skyclass/jiaowu/freemarker/template");Template t = null;try {// test.ftl为要装载的模板 t = configuration.getTemplate("outChairDoc.ftl"); t.setEncoding("utf-8"); } catch (IOException e) {e.printStackTrace();}// 输出文档路径及名称 String fileName="讲座列表.doc"; response.setContentType("application/msword"); response.addHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));//可防止导出的文件乱码response.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();t.process(dataMap, out);out.close();}。
5. eclipse编辑ftl时怎样有标签以及方法的提示
eclipse编辑ftl提示需要使用hudson.freemarker_ide插件。
1、在一个ftl文件中使用java对象时,不能提示出这个对象的属性。如${user.name}。输入user.后不会将name进行补全
2、在一个ftl文件中定义一个macro,另一个文件中使用这个macro时,鼠标移上去,按住ctrl键不能直接定位带该macro定义的地方。这导致,实际开发中要找某个macro的代码非常麻烦,还得动用eclipse的搜索功能!
6. ftl文件中可以写if嵌套吗
freemarker常见语法大全
FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format}
${book.name?if_exists } //用于判断如果存在,就输出这个值
${book.name?default('xxx')}//默认值xxx
${book.name!"xxx"}//默认值xxx
${book.date?string('yyyy-MM-dd')} //日期格式
${book?string.number} 20 //三种不同的数字格式
${book?string.currency}--<#-- $20.00 -->
${book?string.percent}—<#-- 20% -->
<#assign foo=ture />; //声明变量,插入布尔值进行显示
${foo?string("yes","no")} <#-- yes -->
大小比较符号使用需要注意:(xml的原因),可以用于比较数字和日期
使用lt、lte、gt和gte来替代<;、<;=、>;和>;= 也可以使用括号<#if (x>y)>
内置函数: 调用区别于属性的访问,使用?代替.
常见的一些内置函数
对于字符串
html-对字符串进行HTML编码
cap_first-使字符串第一个字母大写
lower_case-将字符串转换成小写
trim-去掉字符串前后的空白字符
示例:${“freeMarker”?cap_first}
对于Sequences(序列)
size-获得序列中元素的数目
对于数字
int-取得数字的整数部分(如-1.9?int的结果是-1)
对于集合,可以使用数组的方式,使用下标索引进行访问
逻辑判断:
if。。。。。.
<#if condition>。
<#elseif condition2>。
<#elseif condition3>。