×

freemarker使用

freemarker使用(freemarker怎么使用CSS样式表以及JS文件)

admin admin 发表于2023-11-18 14:12:16 浏览32 评论0

抢沙发发表评论

本文目录

freemarker怎么使用CSS样式表以及JS文件

freemarker文件还是html代码占多数,即使是freemarker代码,也会经过服务器翻译成html代码返回到浏览器端,所以说,你可以在freemarker文件里,直接用html的语法引入CSS和JS。说白了,freemarker只是辅助你写html文件而已,你当做写html文件就行了,不用想那么复杂。如下代码,只有标记到的地方是freemarker语法,其余都是html语法《!DOCTYPE html》《html lang=“zh-CN“》《head》《meta charset=“utf-8“》《!-- 这句是freemaker --》《title》${webSite.title!}《/title》《!-- 这句的base是freemaker,其余不是 --》《script src=“${base}/resource/plugin/require/require.js“》《/script》《/head》《body》《!-- 这句的user.name是freemaker,其余不是 --》《h1》欢迎您,${user.name}《/h1》《!-- 这句是freemaker --》《#include “body.html“》《/body》《/html》

“freemarker” 是什么意思

FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据。

在所有采用网页静态化手段的网站中,FreeMarker使用的比例大大的超过了其他的一些技术。HTML静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以使用FreeMarker将HTML静态化。比如一些网站的公用设置信息,这些信息基本都是可以通过后台来管理并存储在数据库中,这些信息其实会大量的被前台程序调用,每一次调用都会去查询一次数据库,但是这些信息的更新频率又会很小,因此也可以考虑将这部分内容进行后台更新的时候进行静态化,这样就避免了大量的数据库访问请求,从而也就提高了网站的性能。

与JSP相比,FreeMarker的一个优点在于不能轻易突破模板语言开始编写Java代码,因此降低了领域逻辑漏进视图层的危险几率。但缺点是需要一点附加配置来将其平稳地集成到应用程序中,一些IDE(集成开发环境)可能并不完全支持它,当然还有开发者或设计者也许需要学习一门陌生的模板语言。相关的JAR文件将要添加到WEB-INF/lib(在需要的时候,它们包含在Spring中)。

freemarker如何使用

1.在lib中加入freemarker的包2.在文件templates创建一个文件 test.ftl内容为: ${name},你好,${msg}3.创建类4个步骤,具体看类中的使用package abin;import java.io.File;import java.io.OutputStreamWriter;import java.util.HashMap;import java.util.Map;import freemarker.template.Configuration;import freemarker.template.Template;/** * 模板文件(hello,${name})+数据模型(name=“******“)----------经过FreeMarker整合----输出(hello,******) * 经过4个步骤,见下面 * @author chenhaibin * */public class HelloFreeMarker{ private Configuration conf; //1 创建Configuration实例,该实例负责管理FreeMarker的模板加载路径 public void first() throws Exception { conf=new Configuration(); //放置test.fsl文件的路径 conf.setDirectoryForTemplateLoading(new File(“templates“)); } private Template t; //2 使用Configuration实例生成Template实例,同时加载指定的模板文件 public void second() throws Exception { t=conf.getTemplate(“test.ftl“); } private Map datamap; //3 填充数据模型 public void third() { datamap=new HashMap(); datamap.put(“name“, “chenhaibin“); datamap.put(“msg“, “欢迎使用FreeMarker!“); } //4 合并处理 public void four() throws Exception { t.process(datamap, new OutputStreamWriter(System.out)); } public static void main(String args) throws Exception { HelloFreeMarker hfm=new HelloFreeMarker(); hfm.first(); hfm.second(); hfm.third(); hfm.four(); }}4.结果是: chenhaibin,你好,欢迎使用FreeMarker!

什么是 FreeMarker

它是一个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 Servlet运行于Java-enabled Web Server中。 Java Servlet 可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务。   最早支持Servlet技术的是JavaSoft的Java Web Server 。此后,一些其它的基于Java的Web Server开始支持标准的

如何在freemarker中调用java的方法

1 要想使用Freemarker支持的自定义方法,需要实现freemarker.template.TemplateMethodModel接口或 TemplateMethodModelEx接口参考示例如下:java 代码:public class Object2HashMap implements TemplateMethodModelEx { private static final Logger logger = LoggerFactory.getLogger(Object2HashMap.class); @SuppressWarnings({ “rawtypes“, “unchecked“ }) @Override public Object exec(List arguments) throws TemplateModelException { Collection collection = (Collection) DeepUnwrap.unwrap((TemplateModel) arguments.get(0)); String keyProperty = arguments.get(1).toString(); String valueProperty = arguments.get(2).toString(); HashMap result = new HashMap(); if (collection == null) return result; for (Object object: collection) { try { Object key = PropertyUtils.getProperty(object, keyProperty); Object value = PropertyUtils.getProperty(object, valueProperty); result.put(key, value); } catch (Exception e) { logger.error(“处理异常“, e); } } return result; }}freemarker使用示例,通过new()创建该对象。参考示例是 将wsdl的扩展字段 key,value值放到HashMap中。《#assign chineseAmount = “com.ccic.gateway.core.freemarker.encoder.ChineseAmountEncoder“?new()object2hash = “com.ccic.gateway.core.freemarker.encoder.Object2HashMap“?new()insuredExtendHash = object2hash(payload.responseBody.policy.extend, “key“, “value“)》 取值:${(insuredExtendHash.ApproverCName)!}

如何使用freemarker框架,将不同模板生成的内容整合到一个word文档中

首先,通过xml模板可以将基本上所有的格式都事先锁定,包括页码和分页,只要你事先预设好就能够通过freemarker实现生成,接下来就是我这个问题了,目录怎么解决,下面是解决思路:1:目录的内容可以根据之前其他的内容一样解决,通过XML模板预先设置好,2:目录的页码已经研究过是不能直接通过xml模板实现动态对应了(至少我没搞定0.0)3:由于不能够一步到位,我采取了在模板中预留了一页空白页,只留了抬头的目录两个字,然后通过查询目录二字进行目录的生成,这个功能也是我刚刚折腾出来的0.0目前还没测试能不能用模板生成目录后再更新目录0.0,不过想想可以直接生成目录应该就不用这么麻烦了,至于word生成后的修改0.0我觉得还是以后再说吧..整体来说应该还算完美解决了,代码我就不在这贴出来了~虽然中间折腾了半天走了半天弯路~讲道理还是用的jacob来实现的。

关于freemarker 的用法

只从这段代码中实际上是无法完全确定《@_listCategory》 《/@_listCategory》 这组标签的含义。因为在Freemarker中,那组标签表示调用名为_listCategory的指令而这个指令基本上可以确定是编码者自定义的指令,所以无法完全确定。当然在后面会有我对这个指令含义的推测。现在开始解析这段代码。我对这个代码的初步认识是:一段使用ztree插件过程中,赋值树节点字符串的js代码。代码中的zNodes变量实际上是一个节点对象的数组,这段代码出现的此对象的属性如下:id、pId(父节点id)、name、isParent(是否为父节点)、open(是否展开,true为展开)。代码逐行解析:var zNodes =; //定义zNodes数组结束由于循环结束后最后一个对象后面多了一个逗号,故_listCategory可大概判断其作用是去除结尾逗号用。