freemarker

Why does Array.prototype.filter() throw an error in Magnolia JavaScript models?

若如初见. 提交于 2020-02-26 00:52:27
问题 I'm attempting to filter a FreeMarker list in a Magnolia JavaScript model using Array.prototype.filter(). List [#assign list = [1, 2, 3]] Model var Model = function() { this.filterList = function(list) { return list.filter(function(item) { return item === 2 }); } }; new Model(); Usage ${model.filterList(list)} However, I get the following error. Caused by: jdk.nashorn.internal.runtime.ECMAException: TypeError: list.filter is not a function Nashorn was implemented using ECMAScript-262 5.1. The

FreeMarker(七)Html转义

筅森魡賤 提交于 2020-02-25 01:15:49
在不做任何处理的情况下,往页面传一串Html代码,它会嵌套到页面代码中,一起被编译并且显示。 比如:某个用户把自己的用户名写成a标签,最后显示出来的用户名就是一个超链接 例: //传递的参数 map.put("sp6", "这是一段带有攻击性的字符串<a href='https://www.baidu.com/'>请点击</a>"); 1 2 页面代码: <html> <head> <meta charset="utf-8"> <title>进度条测试</title> <script type="text/javascript" src="../js/jquery-1.11.1.min.js"></script> </head> <body> ${map.sp6} <br/> </body> 页面显示: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JPnC2k64-1570546997250)(/uploads/201710/attach_14eeea087b1c4fc8.png “aaaaa”)] 有两种解决方案: 1.在字符串后面加?html ${map.sp6?html} 2.使用<#escape>转义 值得注意的就是,<#escape>仅仅只对当前文件中的值做转义,而不会去处理嵌套的其它文件(Include)和宏 <#--

FreeMarker-网页静态化

夙愿已清 提交于 2020-02-23 11:47:57
  网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道。 网页静态化技术和缓存技术的共同点都是为了减轻数据库的访问压力,但是具体的应用场景不同,缓存比较适合小规模的数据,而网页静态化比较适合大规模且相对变化不太频繁 的数据。另外网页静态化还有利于SEO。另外我们如果将网页以纯静态化的形式展现,就可以使用Nginx这样的高性能的web服务器来部署。Nginx可以承载5万的并发,而Tomcat只有几百。 一.FreeMarker简介    FreeMarker 是一款 用 Java 语言编写的模板引擎 : 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页, XML,JSP 或 Java 等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 中文在线文档: http://freemarker.foofun.cn/ 二.FreeMarker使用步骤 1.第一步:工程中引入FreeMarker依赖 <!-- FreeMarker的坐标 --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</version> </dependency

SpringBoot2.x整合Thymeleaf

亡梦爱人 提交于 2020-02-23 03:28:19
一、Thymeleaf简介 Thymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发,除了thymeleaf之外还有Velocity、FreeMarker等模板引擎,功能类似。Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎;Spring官方支持的服务的渲染模板中,并不包含jsp。而是Thymeleaf和Freemarker等,而Thymeleaf与SpringMVC的视图技术,及SpringBoot的自动化配置集成非常完美,几乎没有任何成本,你只用关注Thymeleaf的语法即可。 Thymeleaf的特点 动静结合:Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。 开箱即用:它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、该jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。 多方言支持

Freemarker Spring 整合配置标签

这一生的挚爱 提交于 2020-02-21 22:22:29
支持的包 <dependencies> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.29</version> </dependency> </dependencies> springMVC-servlet.xml <!-- 设置freeMarker的配置文件路径 --> <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="location" value="classpath:/properties/freemarker.properties"/> </bean> <!-- 配置freeMarker的模板路径 --> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <!-- 编码设置 --> <property name="freemarkerSettings" ref="freemarkerConfiguration"/>

FreeMarker模板引擎

£可爱£侵袭症+ 提交于 2020-01-30 01:50:28
FreeMarker模板引擎 第1章 FreeMarker快速入门 1-1 模板引擎与FreeMarker 什么是模板引擎 模板引擎的目标是”数据+模板=结果” 模板引擎将数据与展现有效”解耦" 主流模板引擎:JSP、Freemarker、Beetl 1-2 Freemarker快速上手 FreeMarker的执行步骤: 1、加载模板 Configuration config=new Configurarion(Configurarion.VERSION_2_3_28(FreeMarker的版本号));(创建核心配置对象) //设置加载目录 config.setClassForTemplateLoading(FreemarkerSample1.class,"")(在类FreemarkerSample1所在的包中加载指定文件,“”代表当前包) //得到模板对象 Template t=config.getTemplate(“sample1.ftl”); 2、创建数据 Map<String,Object> data=new HashMap<>(); data.put(“site”,“百度”); data.put(“url”,“http://www.baidu.com”); 3、产生输出 t.process(data,new OutputStreamWriter(System.out)

FreeMarker 快速入门

谁说我不能喝 提交于 2020-01-29 10:13:00
FreeMarker是一个很值得去学习的模版引擎。它是基于模板文件生成其他文本的通用工具。本章内容通过如何使用FreeMarker生成Html web 页面 和 代码自动生成工具来快速了解FreeMarker。 1 简介 FreeMarker是一款用java语言编写的模版引擎,它虽然不是web应用框架,但它很合适作为web应用框架的一个组件。 特点: 1. 轻量级模版引擎,不需要Servlet环境就可以很轻松的嵌入到应用程序中 2. 能生成各种文本,如html,xml,java,等 3. 入门简单,它是用java编写的,很多语法和java相似 工作原理:(借用网上的图片) 2 FreeMarker 程序 这里通过模拟简单的代码自动生产工具来感受第一个FreeMarker程序。 项目目录结构 项目创建流程 第一步:创建一个maven项目导入 FreeMarker jar 包 第二步:创建目录templates,并创建一个 FreeMarker模版文件 hello.ftl 第三步:创建一个运行FreeMarker模版引擎的 FreeMarkerDemo.java 文件 第四步:运行main方法后刷新项目 pom.xml 文件 ,maven 项目核心文件,管理 jar 包。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns

Exclamation mark behind assigned value: A = B ! C

*爱你&永不变心* 提交于 2020-01-25 20:05:38
问题 I am reading piece of company javaScript cods and I found the following: seriesCode = pageRecord.getProperty('seriesCode')!'XXX' Does this mean that if first value is NULL the second on should be placed in seriesCode? 回答1: Looks like FreeMarker template language, and yes, the ! operator, when appears on the right side of an operand gives a default value if the left side expression is null or a reference to a missing variable. 回答2: well, your code is wrong and cannot be parsed. You might even

Specify which ViewResolver to use per Controller?

喜欢而已 提交于 2020-01-25 05:53:04
问题 I have a freemarker viewresolver in my spring application: <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> In my controller methods i can return the name of my freemarker template: return "timeline"; Works without any problems. Now i've created a new template language and i want a few controllers to use this custom template language. So i created a CustomViewResolver. <bean id="viewResolver" class="org.CustomViewResolver"> Now i have 2

freemarkers skip assertNonNull InvalidReferenceException

与世无争的帅哥 提交于 2020-01-21 19:21:09
问题 I render a list of Objects with freemarker: <ul> <#list publication as item> <li><b>${item.key}</b> : ${item.value}</li> </#list> </ul> but some of the item have a item.value null that raises the exception: freemarker.core.InvalidReferenceException: Expression item.value is undefined on line 12, column 44 in mailTemplate. at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125) at freemarker.core.Expression.getStringValue(Expression.java:118) I would like that freemarker