freemarker

玩转 SpringBoot 2 快速整合 | FreeMarker篇

北城以北 提交于 2019-11-29 20:30:12
FreeMarker 介绍 Apache FreeMarker™是一个 模板引擎 :一个Java库,用于根据模板和更改数据生成文本输出(HTML网页,电子邮件,配置文件,源代码等)。模板是用FreeMarker模板语言(FTL)编写的,这是一种简单的专用语言(不像PHP这样的完整编程语言)。通常,使用通用编程语言(如Java)来准备数据(发布数据库查询,进行业务计算)。然后,Apache FreeMarker使用模板显示准备好的数据。在模板中,您将专注于如何呈现数据,而在模板之外,您将关注于要呈现的数据。 SpringBoot 官方比较推荐使用 Thymeleaf,由于自己对 FreeMarker 相对比较熟悉,所以这里我先介绍一下如何在 SpringBoot 中使用 FreeMarker 当前前端页面使用。 ——以上内容摘抄自 FreeMarker 官网 SpringBoot 使用 FreeMarker 操作步骤 第一步是在pom.xml 中引入 spring-boot-starter-freemarker 依赖具体代码如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>

FreeMarker 入门示例

℡╲_俬逩灬. 提交于 2019-11-29 19:17:40
FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生 成输出文本(HTML 网页、电子邮件、配置文件、源代码等)的通用工具。 工作原理 模板(基于freemarket语法编写的.ftl文件) + 数据模型(java对象) = 输出(html、xml、java、jsp等文件) 1. 创建工程 2. 添加依赖 <dependencies> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies> 3. 创建模板文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Freemarker 测试</title> </head> <body> <#--这是 freemarker注释,不会输出到文件中 --> <h1>${name};${message

How can I expose an object to all of my Struts2 views?

岁酱吖の 提交于 2019-11-29 18:14:44
I have a web application using Struts2 with Freemarker templates, and Spring4. I have a few configuration strings that are stored in a .properties file which I need to render on every page (for example, our CDN path, which contains a version string). Right now these properties are read by spring and stored in an instance of org.springframework.core.env.Environment . Is there an easy way to make my Environment instance accessible to all of my views? We have another application which does this through action inheritance, where a base class has a getEnvironment() method. I dislike this approach

Default escaping in Freemarker

三世轮回 提交于 2019-11-29 18:12:01
问题 In Freemarker templates we can use the escape directive to automatically apply an escaping to all interpolations inside the included block: <#escape x as x?html> <#-- name is escaped as html --> Hallo, ${name} </#escape> Is there a way to programmatically achieve a similar effect, defining a default escape applied to all interpolations in the template, including those outside escape directives? Thanks. 回答1: To elaborate on Attila's answer: you can use a class like this one and then wrap your

网页静态化

前提是你 提交于 2019-11-29 14:06:12
为啥要网页静态化 网页静态化技术和缓存技术的共同点都是为了减轻数据库的访问压力,但是具体的应用场景不同,缓存比较适合小规模的数据,而网页静态化比较适合大规模且相对变化不太频繁的数据。另外网页静态化还有利于SEO。 另外我们如果将网页以纯静态化的形式展现,就可以使用Nginx这样的高性能的 web 服务器来部署。 Nginx 可以承载 5 万的并发,而 Tomcat 只有几百。 Test.ftl <#--我只是一个注释,我不会有任何输出 --> ${name},你好。${message} <h3>assigne指令</h3> <#assign linkman="周先生"> 联系人:${linkman} <#assign info={"mobile":"13301231212",'address':'北京市昌平区王府街'} > 电话:${info.mobile} 地址:${info.address} <h3>if指令</h3> <#if success=true> 你已通过实名认证 <#else> 你未通过实名认证 </#if> <h3>list指令</h3> ----商品价格表----<br> <#list goodsList as goods> ${goods_index+1} 商品名称: ${goods.name} 价格:${goods.price}<br> </#list>

页面静态化

此生再无相见时 提交于 2019-11-29 14:03:35
freemarker页面静态化介绍 FreeMarker原理    FreeMarker是一个基 于Java的开发包和类库的一种将模板和数据进行整合并输出文本的通用工具,FreeMarker实现页面静态化的原理是:将页面中所需要的样式写入到 FreeMarker模板文件中,然后将页面所需要的数据进行动态绑定并放入到Map中,然后通过FreeMarker的模板解析类process()方 法完成静态页面的生成 为啥要网页静态化 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道。 对于电商网站的商品详细页来说,至少几百万个商品,每个商品又有大量的信息,这样的情况同样也适用于使用网页静态化来解决。 网页静态化技术和缓存技术的共同点都是为了减轻数据库的访问压力,但是具体的应用场景不同,缓存比较适合小规模的数据,而网页静态化比较适合大规模且相对变化不太频繁的数据。另外网页静态化还有利于 SEO 。 另外我们如果将网页以纯静态化的形式展现,就可以使用 Nginx 这样的高性能的 web 服务器来部署。 Nginx 可以承载 5 万的并发,而 Tomcat 只有几百。 Freemarker入门案例 Test.ftl <html> <head> <meta charset="utf-8"> <title>Freemarker入门小DEMO </title

SpringBoot集成框架

心已入冬 提交于 2019-11-29 11:58:10
SpringBoot集成框架(二) SpringBoot 静态资源目录 SpringBoot 集成 JSP 集成 JSP 的步骤 打 war 包发布项目 Freemarker 模板 SpringBoot 集成 Freemarker 模版技术 SpringBoot 静态资源目录 SpringBoot 框架默认提供静态资源目 录位置需放置于 classpath 下,目录名应符合如下规则: ⚫ /static ⚫ /public ⚫ /resources ⚫ /META-INF/resources 其中, classpath 指的是项目中 src/main/resources 目录。 四个目录可以在项目中任意创建一个即可,如只创建一个 static 文件夹存放静态资源,它们的功能都是一样 的。 SpringBoot 集成 JSP 集成 JSP 的步骤 具体实现步骤如下: (1)、 创建项目 在集成 JSP 时,需要在创建 Maven 项目时选择 webapp: File --> New --> Maven Project --> next,接下来输入 webapp --> 选中 maven-archetype-webapp – Next。 (2)、 导入 pom 依赖 在项目的 pom.xml 文件中导入常规依赖之外,需要额外添加 JSP 和 JSTL 两个依赖。 <!--

Spring Boot中使用freeMarker生成word文档

北城以北 提交于 2019-11-29 10:46:02
前面介绍了Java POI方式来生成Word文档,今天用另一种方式来生成。使用freeMarker的方式来生成。使用freeMarker的方式来生成的过程具体如下。 在maven pom.xml文件中加入freeMarker,我这里是在maven环境下做的例子,用其他方式的小伙伴也可以直接到官网下载jar包。 <!--添加freeMarker--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.20</version> </dependency> 下一步我们要做的是先好我们的word模板然后将模板转换为xml文件。在word模板中需要定义好我们的占位符哦,使用${string}的方式。“string”根据自己的爱好定义就好了。 过程如下: word文档: 然后将我们的word文档另存为xml文档。 将我们的xml文档的后缀改为ftl,然后用可以打开ftl文件的软件打开我们的ftl文件。在这里我们有几个需要注意的地方。 第一,定义的占位符可能会被分开了。就像下面这样: 我们需要做的就是删掉多余的部分,图中我定义的是${userName}.所以我就把多余的删掉,变成${userName}就可以了。 第二

java通过freemarker导出word文档带图片并且循环

戏子无情 提交于 2019-11-29 10:45:38
转载请标明出处: https://blog.csdn.net/weixin_41965979/article/details/80969287 本文出自 付付讶的博客 1:所需jar包:freemarker(我用的是freemarker-2.3.18); 首先准备一个word模板(英文部分是要被你的数据所代替的) 2:把这个模板保存为xml格式 3:页面上写好按钮和下拉框选择第几组图片 <div style="width:100%;border:1px solid white;border-top:0px"> <select id="imageoption"> <option value="first" selected>第一组照片</option> <option value="second">第二组照片</option> <option value="third">第三组照片</option> </select> </div> <input type="hidden" value="" name="first" id="before"></input> <!-- 多选框选中传的ids --> <input type="hidden" id="ids" name="ids" value=""></input> <div class="search"> <input type=

FreeMarker导出Word

限于喜欢 提交于 2019-11-29 10:45:03
FreeMarker是一款 模板引擎 : 即一种基于模板和要改变的数据, 并用来生成输出文本( HTML 网页、 电子邮件 、 配置文件 、 源代码 等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 这里介绍如何将生成的word保存到本地,以及从浏览器导出word下载。 1.首先下载freemarker包 https://freemarker.apache.org/freemarkerdownload.html >>>>>freemarker.jar,BuildPath到项目中。 2.新建一个word文档test.doc,将模板内容替换成变量,这里变量要一次性写完如${name}。 注意:如果变量和符号没有一次性写完,例如先写${},再统一加上变量名,这时当你打开xml的时候"${name}"的“$” “{}” “name”就会分开,导出时会出错。建议先把整个${name} ${sex}...写在txt中再copy进来。 3.将test.doc另存为xml 4.用Notepad++打开test.xml,Ctrl+F 搜索$, 检查变量和符号是否正常,变量后面可以都加上?if_exists用于判空。 5.然后将test.xml的后缀名改成ftl,即test.ftl模板,将模板放到项目中去。 6