freemarker

freemarkers skip assertNonNull InvalidReferenceException

本秂侑毒 提交于 2020-01-21 19:20:11
问题 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

freemarker+spring中文乱码的解决

≡放荡痞女 提交于 2020-01-18 21:46:14
freemarker+spring中文乱码的解决 ,办法就是 1 .ftl文件中写好编码 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 2 配置中 <!-- freemarker页面解析器--> <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="suffix"> <value>.ftl</value> </property> <property name="contentType" value="text/html;charset=gb2312"></property> </bean> <!-- 配置Freemarker --> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath"> <value>/WEB-INF/ftl/</value> </property> <

Freemarker模板引擎

若如初见. 提交于 2020-01-18 13:37:30
模板引擎的实质就是将页面结构提前写好,然后将数据渲染到模板上生成一个静态页面,这样一来,下次就可以 直接访问静态文件,不用进行额外的获取数据的操作(例如:访问数据库),这样大大提升了网站的访问速度。 现在以一个demo为例来学习一下Freemarker,顺便提一下其中的一些细节。 1.新建maven支持的web项目 新建web项目,并为其添加Maven支持,个人建议选择MyEclipse Maven JEE Project,如果选择下面一条的话, 会多出4个名字较长的文件夹,而我们本身又不一定会用到。 2.pom.xml文件添加依赖包 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.freemarker<

FreeMarker标签介绍

痴心易碎 提交于 2020-01-17 09:44:34
FreeMarker标签使用 一、FreeMarker模板文件主要有4个部分组成 1、文本,直接输出的部分 2、注释,即<#--...-->格式不会输出 3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出 4、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。 FTL指令规则 FreeMarker有三种FTL标签,这和HTML的标签是完全类似的 开始标签:<#directivename parameters> 结束标签:</#directivename> 空标签: <#directivename parameters /> 实际上,使用标签时前面的#符号也可能变成@,如果该指令是一个用户指令而不是系统内建指令时,应将#符号改为@符号 插值规则 FreeMarker的插值有如下两种类型 1、通用插值:${expr} 2、数字格式化插值:#{expr}或者#{expr;format} 通用插值,有可以分为四种情况 a、插值结果为字符串值:直接输出表达式结果 b、插值结果为数字值:根据默认格式(#setting 指令设置)将表达式结果转换成文本输出。可以使用内建的字符串函数格式单个插值,例如 <#setting number_format = "currency" /> <#assign

Unable to load freemarker template using multipartResolver

北战南征 提交于 2020-01-17 08:01:02
问题 I am using MultipartFile configured in my Spring MVC app via the classpath: <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="1000000"/> </bean> <bean id="MyController" class="myController"> <property name="myTemplate" value="classpath:myTemplate.txt"/> </bean> And I am trying to use freemarker in order to load this templete: public class MyController { private Resource myTemplate; .... Configuration

SpringMVC源码阅读:拦截器

纵然是瞬间 提交于 2020-01-17 05:20:09
1.前言 SpringMVC是目前J2EE平台的主流Web框架,不熟悉的园友可以看 SpringMVC源码阅读入门 ,它交代了SpringMVC的基础知识和源码阅读的技巧 本文将通过源码(基于Spring4.3.7)分析,弄清楚SpringMVC如何完成视图解析的 2.源码分析 在 SpringMVC源码阅读:拦截器 分析 过doDispatch的运行过程,这里再分析一遍 回到DispatcherServlet类的doDispatch方法,看看doDispatch如何获取ModelAndView HandlerMapping根据request获得HandlerExecutionChain 根据HandlerExecutionChain获取HandlerAdapter HandlerAdapter根据request,response和HandlerExecutionChain调用handle方法返回ModelAndView 然后交由 processDispatchResult 处理 1023行检测从doDispatch方法运行到此是否有异常 1037行根据ModelAndView渲染视图 1259根据视图名称解析成View对象 1282行调用AbstractView的render方法进行渲染 点进去,这里以解析ftl做测试 301行创建包含动态值和静态属性的Map

freemarker前端保存不需要重启tomcat

丶灬走出姿态 提交于 2020-01-16 18:26:10
classic_compatible=true ##如果变量为null,转化为空字符串,比如做比较的时候按照空字符做比较 whitespace_stripping=true ##去掉多余的空格,非常有用 ##模版更新事件,设置为1秒,正式环境设置为3600秒 #template_update_delay=3600 template_update_delay=0 ##模版更新时间,这里配置是1秒更新一次,正式环境,模版不会改变,可以将这个值设很大,提高效率.就是被这个参数害死了.老是不更新. locale=zh_CN ##中国 default_encoding=utf-8 ##编码utf8 url_escaping_charset=utf-8 ##url编码utf8 date_format=yyyy-MM-dd ##显示日期格式 time_format=HH:mm:Ss ##显示时间格式 datetime_format=yyyy-MM-dd ##显示日期格式 number_format=\#0.\#\#\#\#\# ##数字显示格式hi. #template_update_delay=1 datetime_format=yyyy-MM-dd HH:mm:ss date_format=yyyy-MM-dd time_format=HH:mm:ss number_format=0.###

FreeMarker : How to check if a variable exists in a FreeMarker template

梦想的初衷 提交于 2020-01-15 13:08:45
java - How to check if a variable exists in a FreeMarker template? - Stack Overflow https://stackoverflow.com/questions/306732/how-to-check-if-a-variable-exists-in-a-freemarker-template FAQ - Apache FreeMarker Manual https://freemarker.apache.org/docs/app_faq.html 来源: https://www.cnblogs.com/rgqancy/p/12195924.html

FreeMarker check the class name of an object

不羁岁月 提交于 2020-01-15 11:22:18
问题 is there a way to get the class name of an object in a freemarker template ? For instance: <#if component.javaType.class.name.equals("test") > "something...." </#else> "something else ...." </#if> Thanks 回答1: There's no feature built in for that, but depending on the configuration settings and on the type of the object, this may works: <#if component.class.name == 'com.example.Something'> That works because component.foo simply means comonent.getFoo() in Java, so the above just means

Cobertura code coverage for Freemarker auto-generated code

不羁的心 提交于 2020-01-15 10:47:49
问题 I am trying to set up Cobertura code coverage on a project which includes auto-generated code, created from templates using Freemarker (explicitly, using the fmpp maven plugin). I then have unit tests for those auto-generated classes. However, these unit tests are not being considered by Cobertura when calculating code coverage. The auto-generated classes appear in the report, but the coverage on those classes is always 0%. First, is there some configuration for Cobertura that I'm missing?