官网原文https://freemarker.apache.org/ 看不进去,所以就自己翻译一下官网原文,但是感觉速度太慢啦!!!
什么是Apache FreeMarker
apache freemarker 是一个模板引擎,一个基于模板和变化的数据去生成输出文本(HTML 网站页面,邮箱,配置文件,源代码等等)的java库。模板是用freeMarker 模板语言(FTL)(并不是一个像PHP那样的成熟语言),一个简单特殊的语言去写的。通常情况下,一个通用编程语言如java去准备数据(查询db,做业务计算),然后Apache freemarker去使用模板展示数据。在模板中你关注的是怎样呈现数据,在模板之外,你要关注的是呈现的是哪些数据
这种方法被称为MVC模式(model View Controller),并且在动态网页中特别受欢迎。并且对前后端分离非常有帮助,前端页面的设计者在使用模板中不用面对复杂的后台逻辑,并且可以在不修改工程或者重新编译的情况下,去改变前端页面的样式 freemarker最初是为了在MVC框架模式中生成HTML页面所创造的,但它并不非得绑定到servlets 或者 HTML或者与web关联,它是可以用在非web应用环境中的
特点
一些freemarker的优势 1.强大的模板语言,Conditional blocks(条件块), iterations(迭代), assignments, string and arithmetic operations(算术运算) and formatting(格式化), macros(宏) and functions(函数),可以引入其他模板语言,默认下是此功能时关闭的 2.多用途和轻量级的:0依赖,任何的输出格式,能够从任何地方加载模板(插入),有许多配置选项 3.国际化/根据语言环境而变化:可以根据语言环境使其数字,数据/时间格式变化,也可以局部模板发生变化 4.处理XML功能:可以删除xml DOM-S,也可以遍历它们,甚至可以声明它们 5.通用数据模板:通过插入适配器,在模板中的java对象可以作为变量树,决定模板如何看待它们
许可
Apache FreeMarker is Free software, licensed under the Apache License, Version 2.0. See the license here....
Note that the project is owned by the Apache Software Foundation since 2.3.24-pre01 (2015-09-02). Earlier releases, such as 2.3.23, has a different copyright owner.
模板+数据模型=输出
假设你需要一个网站的前端页面,和下面的类似
Welcome!
Welcome John Doe!
Our latest product:
green mouse !
但是用户的名字是根据登录者的不同去变化的,最新的数据来自db中,由于这个数据是变化的,所以无法使用静态HTML,此时可以使用要求输出模板,模板和静态HTML相同,只是它会包含一些freemarker指令使其变为动态
Welcome!
Welcome ${user}!
Our latest product:
${latestProduct.name} !
这个模板存储在web服务器,和静态HTML页面相同,当有人来访问这个页面,freemarker会介入,将html中的模板${...}动态替换成最新的内容,并且将结果返回用户浏览的浏览器。用户的web浏览器会接受到一个和第一个实例代码类似的html页面(不含有freemarker指令),并且服务器中的模板不会被改变,替换只是出现在web 服务的相应中
注意。模板当中不含有查找当前访问者是谁的逻辑,或者去查询数据库获取最新数据的逻辑,被显示的数据是在freemarker之外事先准备的,通常是由java等编程语言去获取的。模板的使用者不需要知道这些值是如何计算的。事实上,这些值可以被修改,但是模板完全不变,页面样式可以被改变,模板也不改变,当前后端分离时,freemarker是非常有用的。保证模板专注于显示问题(视觉设计,布局和格式化)是高效使用模板引擎的关键
为模板准备的全部数据被称为数据-模型,模板作者要关心的是,数据模型是一个树形结构(像在硬盘上的文件夹和文件),这些数据模型可以看做下面的结构
注意:上面仅仅是一个形象化的描述,数据模型不是文本格式,它来自java对象,对于java程序员来说,root 也许是一个有getUser和getLastesProduce方法的java对象,或者是一个带有user 和 latestProdects key的java Map,同样的,latestProdect 也许是一个java对象带有getUrl 和 getName方法
早期时候,可以通过user,lastProdect.name获取数据,如果我们继续类比,数据模型就像一个文件系统,root 和 latestProdect就像是文件夹,user,url 和 name是这些目录中的文件
概括来说,在freemarker中使用模板+数据模型完成数据输出
Template + data-model = output
数据模型一览
如下图所见,数据模型就像是一个基本的树,这个树结构可以越来越复杂,有更深的深度
这些扮演文件夹的变量(root,animals,mouse,elephant,python,misc)被称为hashes,hashes存储其他变量(子变量),可以通过名字查找他们 这些存储数值的变量被称为scalars
当想在模板中使用子变量,你需要从根指定它的路径,并且用点去分割。想访问price 或者 mouse,应该写为animals.mouse.price
另一个重要的变量是序列(sequences),他们想hashes一样存储子节点,但是子节点没有名字,他们仅仅在一个list当中,在这个数据模型中,animals和misc,fruits是序列
可以使用方括号加数字索引去访问一个序列,索引从0开始,获取animal的第一个名字就写成animals[0].name(实际中,一般只会按顺序遍历数据,而不是关心索引). Scalars可以分为以下类别 1.字符串 2.数字 3.时间 4.布尔 总结: 1.数据模型可以看出树形 2.scalars存储一个值,这个值可以是字符串,数字,时间,布尔 3.hashes是一个存储变量的容器,可以通过名字查找他们 4.序列是一个顺序存储遍历的容器,索引从0开始
模板一览
最简单的模板是一个纯HTML文件(freemarker并不是HTML)当客户浏览页面时,freemarker将返送html到客户端,但是想要页面有更多动态的部分,需要在页面加入能被freemarker解析的代码
${...}:freemarker将真实的数据输出到方括号当中,被称为interpolations
FTL tags:FTL tags 和 HTML tags比较相似,但是它们属于freemarker的指令,并且不会对外输出,这些tag的名字以#开头(自定义的tags需要使用@来开头)
Commets:注释和html注释相似,都是通过该<#--内容-->来注释,不像html注释那样,FTL注释不会出现在输出中
其他不是FTL标签或者interpolation或者注释的都会被认作静态文本,并输出到页面
FTL标签也被称为指令,和html标签和html元素相似
一些基本的指令
if指令
通过if指令,可以选择性跳过模板
Welcome!
Welcome ${user}<#if user == "Big Joe">, our beloved leader#if>!
Our latest product:
${latestProduct.name} !
让我们详细说说condition:==是一个基本的操作如果左侧的值与右侧的值相等,并且结果是一个布尔值,等号左侧是引用的变量,这种语法结构我们已经很熟悉了。这个变量值将会被等号右侧所替代。总结来说,没有被引号标注的都会被视为变量。 右侧是字符串,在模板中的字符串只能放在引号内
<#if animals.python.price == 0>
Pythons are free today!
#if>
<#if animals.python.price != 0>
Pythons are not free today!
#if>
<#if animals.python.price < animals.elephant.price>
Pythons are cheaper than elephants today.
#if>
<#if animals.python.price < animals.elephant.price>
Pythons are cheaper than elephants today.
<#else>
Pythons are not cheaper than elephants today.
#if>
<#if animals.python.price < animals.elephant.price>
Pythons are cheaper than elephants today.
<#elseif animals.elephant.price < animals.python.price>
Elephants are cheaper than pythons today.
<#else>
Elephants and pythons cost the same today.
#if>
<#if animals.python.protected>
Pythons are protected animals!
#if>
list指令
如果需要把数据列出来,举例如果想这个模板与数据模型合并,要像下面这样
We have these animals:
<#list animals as animal>
${animal.name} ${animal.price} Euros
#list>
如果用list,如果list中为0,还是会执行一下循环中的值,所以可以用item
<#list misc.fruits>
<#items as fruit>
${fruit}
#items>
#list>
其他比较频繁使用的list:
Fruits: <#list misc.fruits as fruit>{fruits?join(", ", "None")}* 所有指令( (list, items, sep, else))可以一起使用
<#list misc.fruits>
Fruits:
<#items as fruit>
${fruit}<#sep> and#sep>
#items>
<#else>
We have no fruits.
#list>
include 指令
使用include指令你可以将其他文件的内容放入模板
Copyright (c) 2000 Acmee Inc ,
All Rights Reserved.
被引用的文件copyright_footer.html
Copyright (c) 2000 Acmee Inc ,
All Rights Reserved.
Test page
Test page
Blah blah...
<#include "/copyright_footer.html">
联合使用指令
<#list animals as animal>
class="protected"#if>>
${animal.name} for ${animal.price} Euros
#list>
注意freemarker并不解析FTL 标签,interpolations 和FTL 注释以外的其他文本,注释,和interpolations 使用内建函数 内建函数很像子变量(或者更像java中的方法),并不来自数据-模型,但是通过freemarker添加的。为了获知自变量是从哪里来的,你需要用?去代替. 1.user?upper_case给出user的大写形式 2.animal.name?cap_first使其首字母大写 3.user?length给出user的字符数量 4.animals?size给出animals序列中项目的个数 5.如果在<#list animals as animals>和#list>中 1.animal?index 提供基于0的所有数 2.animal?counter 很像索引,但是是基于1的索引 3.animal?item_parity 基于当前计数的奇偶,给出字符串"odd"或者"even",这个在给行着色的时候特别有用,比如"
" 一些内建函数需要参数来指定行为 1.animal.protected?string("Y","N")根据animal.protected去返回Y或者N 2.animal?item_cycle('lightRow','darkRow')是之前itme_parity更常见的变体 3.fruits?join(","):将list 转换为string,并且用分隔符的参数去连接它们(like "orange, banana") 4.user?starts_with("J")根据user的首字符是否是J给出true或者false 5.animal?filter(it -> it.protected)展示受保护的元素 animals?filter(it -> it.protected) gives the list of protected animals. <#list animals?filter(it -> it.protected) as animal>...#list>.
处理不存在的数据
数据模型经常有变量是不存在的,除了一些特殊的人为错误,freemarker是无法忍受不存在的变量的,以下是最常用的两种处理方法 当指向一个变量,你可以在变量名后面加!去指定一个默认值当变量缺失,像下面的情况,当user在数据模型中缺失,模板将显示"visitor".(当user没有丢失,模板将显示数据)
Welcome ${user!"visitor"}!
也可以在名字后面加??来询问变量是否缺失,如果这个user缺失,那么你可以跳过此访问
<#if user??>Welcome ${user}! #if>
转义其他的HTML,XML和其他的markup 如果{name}会输出"Someone & Co." 使用ftlh,freemarker将自动转义Html中的所有带有${...}
<#ftl output_format="HTML">
(如果生成的是XML,则使用XML代替HTML) 此方法需要版本在2.3.24以上
基本类型
理解数值和类型的概念是理解数据类型的基础,但是数据和类型并不局限于数据模型
什么是数值
![image.png](https://upload-images.jianshu.io/upload_images/24525532-28a067124367174d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
我们说user变量值为"Big Joe",today值为Jul 6, 2007,,,,lotteryNumbers里面有很多值,并且包含很多值,这就像一个盒子包含其他一些东西(容器),整个盒子会被看成一个独立的主题,最后还有一个数值cargo,他是一个hash值,所以,一个值有时可以存储在一个变量中,但是不需要存储在变量中的数值也可以成为数值
<#if cargo.weight < 100>Light cargo#if>
什么是类型
数值有一个很重要的方面,他们的类型 一个数值可以同时包含很多类型
数据模型是一个hash
看了不同的数据模型实例可能会意识到:被root标识的内容,仅仅是一种类型hash的值,但编写类似user,那就意味着想要将user存储到root hash上,这里没有名为root的变量,就起不到任何作用
你可能感兴趣的:(freemarker)
点击图片浏览大图(sui框架)
this_ITBoy
原创 图片浏览器 H5
项目中经常遇到点击图片或者点击相册浏览大图的情景,SUI框架自带swiper滚动的效果,详情见http://m.sui.taobao.org/中的拓展组件--图片浏览器的效果,在项目中需要做到点击图片出现图片浏览器而不是点击固定的按钮,这就需要在js里做一些改变了。部分html代码如下:这里是freemarker语法循环出每一张图片,而data-src属性的值是图片的接口,img的src属性也是图
使用 Java 和 FreeMarker 实现自动生成供货清单,动态生成 Word 文档,简化文档处理流程。
熊文豪
java apache freemarker
在上一篇博客中主要是使用SpringBoot+ApachePOI实现了BOM物料清单Excel表格导出,详见以下博客:SpringBoot+ApachePOI实现Exc()el导出:BOM物料清单生成器(支持中文文件名、样式美化、数据合并)目录引言项目结构源代码展示1.WordController2.WordUtil工具类3.FreeMarker模版4.POM依赖WordController类深度
springboot 利用html模版导出word
经典1992
spring boot html word
1.maven配置 org.freemarker freemarker 2.3.32 2.控制层业务代码@GetMapping("/exportConstructionLogDocx")@ApiOperation(value="Ai施工日志导出docx")publicvoidexportConstructionLogDocx(
XXL-TOOL v1.3.2 发布 | Java工具类库
后端javaspring
ReleaseNotes1、【新增】新增多个工具类模块,包括:Md5Tool、HexTool、HttpTool等;2、【完善】工具类单测完善;3、【升级】升级依赖版本,如freemarker、junit…等。简介XXL-TOOL是一个Java工具类库,致力于让Java开发更高效。包含“集合、字符串、缓存、并发、Excel、Emoji、Response、Pipeline……”等数十个模块。文档地址中
freemarker模板学习笔记
tryCbest
freemarker java spring boot
文章目录freemarker常用指令if-elseif-else指令switch,case,default,break指令list,else,items,sep,break指令指令语法指令指令指令指令include指令基础知识带*的pathimport指令assign指令自定义指令参数嵌套内容宏和循环变量freemarker内置函数字符串内置函数数字内置函数哈希表内置函数序列内置函数循环变量内置函
Struts2中的action中result中的type有哪些类型
阿立聊代码
struts struts2.0
Struts2框架默认配置中已经提供了很多的result类型,可以打开struts-default.xml配置文件来查看。chain:Action链式处理的结果类型,也就是将结果转发到这个action中。chart:整合JFreeChart的结果类型dispatcher:用于整合JSP的结果类型freemarker:用于整合freemarker结果类型。httpheader:用于控制特殊的HTTP
[套路] 浏览器引入Vue.js场景-WangEditor富文本编辑器的使用 (永久免费)
Grandpa_Rick
套路 front end vue.js 前端 javascript wangEditor
系列文章目录[套路]el-table多选属性实现单选效果[套路]基于服务内存实现的中文拼音混合查询[套路]Bypass滑块验证码目录系列文章目录前言一、实现1.1场景1.2Window对象简介1.3引入WangEditor1.4页面配置前言公司使用freemarker的老旧SpringBootWeb后台项目,前两年通过浏览器引入js的方式使用Vue简单升级了下,方便迭代功能.近期一个很简单的功能需
Eureka 集群启动报错
hello_zzw
Java java Eureka
Eureka集群启动时,页面出现如下错误提示FreeMarkertemplateerror(DEBUGmode;useRETHROWinproduction!):Thefollowinghasevaluatedtonullormissing:==>replica.key[intemplate"eureka/navbar.ftl"atline68,column62]----Tip:It'sthest
【Java】电子凭证-Java生成PDF
hkk666123
Java HTML 转 PDF htmlTOPDF
文章目录背景实现思路技术方案图TemplateEngines(模板引擎)`Thymeleaf``ApacheFreemarker``GroovyTemplates``velocity``HTMLTOPDF`技术各实现对比表WKhtmlTOpdfiTextPhantomJS技术核心:HTML生成PDF背景在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等。方
HTML生成PDF模板(Java iText+FreeMarker生成PDF(HTML转PDF))
慕天蓝
java java html xpdf itext freemarker
JavaiText+FreeMarker生成PDF(HTML转PDF)1.背景在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等。方便用户查看,下载,打印。目前常用的解决方案是,把相关数据信息,生成对应的pdf文件返回给用户。本文源码:http://git.oschina.net/lujianing/java_pdf_demo2.iTextiText是著名
java web 前端开发框架和流程
韩大帅666
前端 前端
1通常JavaWeb开发框架举个例子,对于广告系统的来说,我们先不管一些job,CACHE,config...这些优化,些框架和分层可以是这样的,MVC的技术选型:V:FreeMarkervsJSP/VelocityC:SpringMVCvsStruts/WebworkM:SPRING/JPA/HibernatevsiBatis2前端V的架构前端开发刚兴起的阶段,前端开发人员的工作经常穿插在后端开
freemarker
一+一加1
spring cloud java
一、快速入门(一)、创建工程freemarker-demo引入依赖org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-freemarkerorg.springframework.bootspring-boot-starter-testorg.projectlombokl
用maven配置springboot+freemarker
weixin_30915951
java
1.创建项目直接点下一步原因:不勾选Createfromarchetype,是项目创建的骨架的时候,由于不知道什么原因就卡住了,一直在刷新2.创建之后完成之后添加依赖org.springframework.bootspring-boot-starter-parent1.3.5.RELEASEorg.springframework.bootspring-boot-starterorg.springf
maven创建webapp+Freemarker组件的实现
诗句藏于尽头
maven maven web app java
下载安装配置mavenMaven官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘123云盘为您提供Maven最新版正式版官方版绿色版下载,Maven安卓版手机版apk免费下载安装到手机,支持电脑端一键快捷安装https://www.123pan.com/s/9QRqVv-TcUY.html链接为3.6.2-3.6.3的版本下载解压其中一个版本开始配置环境变量%MAVEN_HOME%找到对
SpringBoot使用freemarker动态生成word文档
Spirit_NKlaus
SpringBoot spring boot java 后端
最近做项目有个需求,在动态生成word文档的同时插入电子签名图片,这里使用freemarker来实现。首先引入freemarker依赖:org.freemarkerfreemarker2.3.28首先模板要自己先画好,打开word自己制作一个模板:然后将它另存为xml,修改相关内容后再另存为ftl文件,这样就可以使用了(抓取重要的几个部分)//如果想要打出多个要是用list标签....//文字部分
maven java 如何打纯源码zip包
程序男
java基础专题 软件工程专题 git&maven java maven pycharm
一、背景打纯源码包给第三方进行安全漏洞扫描二、maven插件项目中加入下面的maven插件maven-source-plugin2.4true*.propertiesfreemarker/*.ftlmapper/*.xmlwebapp/*.xmllicense/*.*compilejar三、使用步骤3.1产出源码jar包ideamaven执行cleancompile命令在target目录下找到*-
SpringBoot02
建国同学
复习@Component启动时,会加载贴了该注解的类instanceof:判断是否是该对象的实例一、集成freemarkerspring.freemarker.prefix:加载模板时候的前缀404:没添加依赖,前后缀spring.freemarker.settings.number_format=0.##数字格式不用逗号隔开配置配置freemarker模板Enable_LiveTemplates
FreeMarker 字符替换,插值 ${} ${!}空值处理 ${?}
kfepiza
JAVA # Spring Spingboot SpringCould java sql 数据库
FreeMarker字符替换,插值${}${!}空值处理${?}${}${属性名}可用于取值在Spring中可在请求方法中将值放入HttpServletRequest,Model,ModelMap,ModeAndView中,其中HttpServletRequest,Model,ModelMap可以注入,ModeAndView要自己new注入的Model和ModelMap实例相等==,是同一个实例例
【黑马头条之对象存储服务MinIO】
蛋饼吧
黑马头条 笔记 java
本笔记内容为黑马头条项目的对象存储服务MinIO部分目录一、MinIO简介二、MinIO特点三、开箱使用1、安装启动2、管理控制台四、快速入门1、创建工程,导入pom依赖五、封装MinIO为starter1、创建模块heima-file-starter2、配置类3、封装操作minIO类4、对外加入自动配置5、其他微服务使用五、结合freemarker实现文章详情功能1.需求分析2、实现方案3、实现
黑马头条-day02
己不由心王道长
java 开发语言
文章目录前言一、文章列表加载1.1需求分析1.2表结构分析1.3导入文章数据库1.4实现思路1.5接口定义1.6功能实现二、freemarker2.1freemarker简介2.2环境搭建&&快速入门2.2.1创建测试工程2.3freemarker基础2.3.1基础语法种类2.3.2集合指令2.3.3if指令2.3.4运算符2.3.5空值处理2.3.6内建函数三、对象存储服务MinIO3.1Min
Java 导出word和pdf_Java实现word导出与pdf导出
lihahamiao
Java 导出word和pdf
实现PDF导出org.freemarkerfreemarker2.3.201、ftl文件是放在了webapp下的WEB-INF/views/ftl下2、图片是存放在webapp下的images中3、路径是为了方便找文件图片。为什么没有放在views下?是因为有在做pdf时需要用到这里的链接访问图片,因为程序是web端的,路径直接获取的绝对路径。4、访问程序为@RequestMapping(valu
word导出手机端乱码或者打不开解决办法
Java大表哥
JAVA 开发中遇到的问题 java poi freemarker 导出word
word导出手机端乱码或者打不开解决办法文章目录word导出手机端乱码或者打不开解决办法**前言:****先看之前的两种方式导出word:**1.[freemarker模板导出word循环图片表格详细教程](https://mp.csdn.net/editor/html/106714402)2.[freemarker模板导出带表格word详细教程](https://mp.csdn.net/edit
thymeleaf 模板使用
阿__飞
1.导入依赖2.配置模板,开发一般关闭模板缓存#解决模板校验问题spring.thymeleaf.mode=LEGACYHTML5#thymeleaf模板引擎配置#关闭模板缓存spring.thymeleaf.cache=false#模板编码spring.thymeleaf.encoding=UTF-8#freemarker模板引擎配置spring.freemarker.cache=false#模
java生成word文档
威峰
java word 开发语言
1.生成文件思路①通过freemarker模板生成文件②根据要生成的word文档,再需要变的数据上改写为变量名,并转存为xml格式1.1如下是要生成的文档样例数据1.2转换为变量名如下1.3生成xml转存文件然后选择xml③组装业务数据④生成文件2.开始写代码①先加入依赖包可以自己下载(我这里是maven配置,在pom文件添加需要的依赖)②编写加载模板方法③导入模板,把刚刚生成的xml文件改为.f
解决springboot项目中后端导出excel表格(freemarker模板)报错
周夫子
spring boot java 后端
解决springboot项目中后端导出excel表格(freemarker模板)报错1、后端代码部分controller:导出工具类中涉及的方法1:导出工具类中涉及的方法2:2、导出excel表格的模板位置(freemarker模板)模板部分代码(导出内容太多,就不展示全部代码了,如有需要可自行查阅百度!):3、导出后报错内容如下报错位置:正确代码:总结:不加"!",如果无数据导出时,会报错,加上
freemark的使用
二小姐诶
SpringBoot相关 java 前端 服务器
freemark最常用的应用于发送邮件模板变量的替换,存储的模板格式为html格式发送邮件时需要预先设置好.ftl模板,并且调整好格式,模板里面的变量以${}标识需要导入依赖org.springframework.bootspring-boot-starter-freemarker创建一个freemark工具类packagecom.example.common.util;importcn.huto
使用freemarker和itextpdf结合,将html转化为pdf
二小姐诶
SpringBoot相关 Java后端开发 pdf java html
工作中遇到模板中的html,需要转化成pdf作为附件上传到系统于是经过研究分析,得出用freemarker和itextpdf结合maven需要导入包:org.springframework.bootspring-boot-starter-freemarkercom.itextpdfitextpdf${itextpdf.version}com.itextpdf.toolxmlworker5.5.8c
解决SpringBoot jar包中的文件读取问题
wuxiaopengnihao1
spring boot jar java
前言SpringBoot微服务已成为业界主流,从开发到部署都非常省时省力,但是最近小明开发时遇到一个问题:在代码中读取资源文件(比如word文档、导出模版等),本地开发时可以正常读取,但是,当我们打成jar包发布到服务器后,再次执行程序时就会抛出找不到文件的异常。背景这个问题是在一次使用freemarker模版引擎导出word报告时发现的。大概说一下docx导出java实现思路:导出word的文档
【SpringBoot】application配置文件(4)
freedomSTUDENT
SpringBoot spring boot java spring
freemarker:cache:false这是关于freemarker模板引擎的一个配置,用于控制模板的缓存行为当cache设置为false时,意味着每次请求时都会重新加载和编译模板,而不是从缓存中获取编译模板。将cache设置为false是为了在开发过程中获得最新的模板内容,而不是使用缓存中的旧版本。在生产环境中,为了提高性能,通常会将cache设置为true,这样Freemarker会缓存已
freemarker 格式化时间 出现空值问题
my_interface
${a.datetime}当输出datetime数据时,如果datetime为null系统将报异常;因此需要在后面加一个!用于设置默认值${a.datetime!'无数据'}或${a.datetime!}当进行时间格式化处理时${a.datetime?string('yyyy')}需要将前面的内容用()括起来才可以使用!如${(a.datetime?string('yyyy'))!'无数据'}或$
web前段跨域nginx代理配置
刘正强
nginx cms Web
nginx代理配置可参考server部分
server {
listen 80;
server_name localhost;
spring学习笔记
caoyong
spring
一、概述
a>、核心技术 : IOC与AOP
b>、开发为什么需要面向接口而不是实现
接口降低一个组件与整个系统的藕合程度,当该组件不满足系统需求时,可以很容易的将该组件从系统中替换掉,而不会对整个系统产生大的影响
c>、面向接口编口编程的难点在于如何对接口进行初始化,(使用工厂设计模式)
Eclipse打开workspace提示工作空间不可用
0624chenhong
eclipse
做项目的时候,难免会用到整个团队的代码,或者上一任同事创建的workspace,
1.电脑切换账号后,Eclipse打开时,会提示Eclipse对应的目录锁定,无法访问,根据提示,找到对应目录,G:\eclipse\configuration\org.eclipse.osgi\.manager,其中文件.fileTableLock提示被锁定。
解决办法,删掉.fileTableLock文件,重
Javascript 面向对面写法的必要性?
一炮送你回车库
JavaScript
现在Javascript面向对象的方式来写页面很流行,什么纯javascript的mvc框架都出来了:ember
这是javascript层的mvc框架哦,不是j2ee的mvc框架
我想说的是,javascript本来就不是一门面向对象的语言,用它写出来的面向对象的程序,本身就有些别扭,很多人提到js的面向对象首先提的是:复用性。那么我请问你写的js里有多少是可以复用的,用fu
js array对象的迭代方法
换个号韩国红果果
array
1.forEach 该方法接受一个函数作为参数, 对数组中的每个元素
使用该函数 return 语句失效
function square(num) {
print(num, num * num);
}
var nums = [1,2,3,4,5,6,7,8,9,10];
nums.forEach(square);
2.every 该方法接受一个返回值为布尔类型
对Hibernate缓存机制的理解
归来朝歌
session 一级缓存 对象持久化
在hibernate中session一级缓存机制中,有这么一种情况:
问题描述:我需要new一个对象,对它的几个字段赋值,但是有一些属性并没有进行赋值,然后调用
session.save()方法,在提交事务后,会出现这样的情况:
1:在数据库中有默认属性的字段的值为空
2:既然是持久化对象,为什么在最后对象拿不到默认属性的值?
通过调试后解决方案如下:
对于问题一,如你在数据库里设置了
WebService调用错误合集
darkranger
webservice
Java.Lang.NoClassDefFoundError: Org/Apache/Commons/Discovery/Tools/DiscoverSingleton
调用接口出错,
一个简单的WebService
import org.apache.axis.client.Call;import org.apache.axis.client.Service;
首先必不可
JSP和Servlet的中文乱码处理
aijuans
Java Web
JSP和Servlet的中文乱码处理
前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下。应该是可以解决日常的乱码问题了。现在作以下总结希望对需要的人有所帮助。我也是刚学,所以有不足之处希望谅解。
一、表单提交时出现乱码:
在进行表单提交的时候,经常提交一些中文,自然就避免不了出现中文乱码的情况,对于表单来说有两种提交方式:get和post提交方式。所以
面试经典六问
atongyeye
工作 面试
题记:因为我不善沟通,所以在面试中经常碰壁,看了网上太多面试宝典,基本上不太靠谱。只好自己总结,并试着根据最近工作情况完成个人答案。以备不时之需。
以下是人事了解应聘者情况的最典型的六个问题:
1 简单自我介绍
关于这个问题,主要为了弄清两件事,一是了解应聘者的背景,二是应聘者将这些背景信息组织成合适语言的能力。
我的回答:(针对技术面试回答,如果是人事面试,可以就掌
contentResolver.query()参数详解
百合不是茶
android query()详解
收藏csdn的博客,介绍的比较详细,新手值得一看 1.获取联系人姓名
一个简单的例子,这个函数获取设备上所有的联系人ID和联系人NAME。
[java]
view plain
copy
public void fetchAllContacts() {
 
ora-00054:resource busy and acquire with nowait specified解决方法
bijian1013
oracle 数据库 kill nowait
当某个数据库用户在数据库中插入、更新、删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误。主要是因为有事务正在执行(或者事务已经被锁),所有导致执行不成功。
1.下面的语句
web 开发乱码
征客丶
spring Web
以下前端都是 utf-8 字符集编码
一、后台接收
1.1、 get 请求乱码
get 请求中,请求参数在请求头中;
乱码解决方法:
a、通过在web 服务器中配置编码格式:tomcat 中,在 Connector 中添加URIEncoding="UTF-8";
1.2、post 请求乱码
post 请求中,请求参数分两部份,
1.2.1、url?参数,
【Spark十六】: Spark SQL第二部分数据源和注册表的几种方式
bit1129
spark
Spark SQL数据源和表的Schema
case class
apply schema
parquet
json
JSON数据源 准备源数据
{"name":"Jack", "age": 12, "addr":{"city":"beijing&
JVM学习之:调优总结 -Xms -Xmx -Xmn -Xss
BlueSkator
-Xss -Xmn -Xms -Xmx
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:
java -Xmx355
jqGrid 各种参数 详解(转帖)
BreakingBad
jqGrid
jqGrid 各种参数 详解 分类:
源代码分享
个人随笔请勿参考
解决开发问题 2012-05-09 20:29 84282人阅读
评论(22)
收藏
举报
jquery
服务器
parameters
function
ajax
string
读《研磨设计模式》-代码笔记-代理模式-Proxy
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
/*
* 下面
应用升级iOS8中遇到的一些问题
chenhbc
ios8 升级iOS8
1、很奇怪的问题,登录界面,有一个判断,如果不存在某个值,则跳转到设置界面,ios8之前的系统都可以正常跳转,iOS8中代码已经执行到下一个界面了,但界面并没有跳转过去,而且这个值如果设置过的话,也是可以正常跳转过去的,这个问题纠结了两天多,之前的判断我是在
-(void)viewWillAppear:(BOOL)animated
中写的,最终的解决办法是把判断写在
-(void
工作流与自组织的关系?
comsci
设计模式 工作
目前的工作流系统中的节点及其相互之间的连接是事先根据管理的实际需要而绘制好的,这种固定的模式在实际的运用中会受到很多限制,特别是节点之间的依存关系是固定的,节点的处理不考虑到流程整体的运行情况,细节和整体间的关系是脱节的,那么我们提出一个新的观点,一个流程是否可以通过节点的自组织运动来自动生成呢?这种流程有什么实际意义呢?
这里有篇论文,摘要是:“针对网格中的服务
Oracle11.2新特性之INSERT提示IGNORE_ROW_ON_DUPKEY_INDEX
daizj
oracle
insert提示IGNORE_ROW_ON_DUPKEY_INDEX
转自:http://space.itpub.net/18922393/viewspace-752123
在 insert into tablea ...select * from tableb中,如果存在唯一约束,会导致整个insert操作失败。使用IGNORE_ROW_ON_DUPKEY_INDEX提示,会忽略唯一
二叉树:堆
dieslrae
二叉树
这里说的堆其实是一个完全二叉树,每个节点都不小于自己的子节点,不要跟jvm的堆搞混了.由于是完全二叉树,可以用数组来构建.用数组构建树的规则很简单:
一个节点的父节点下标为: (当前下标 - 1)/2
一个节点的左节点下标为: 当前下标 * 2 + 1
&
C语言学习八结构体
dcj3sjt126com
c
为什么需要结构体,看代码
# include <stdio.h>
struct Student //定义一个学生类型,里面有age, score, sex, 然后可以定义这个类型的变量
{
int age;
float score;
char sex;
}
int main(void)
{
struct Student st = {80, 66.6,
centos安装golang
dcj3sjt126com
centos
#在国内镜像下载二进制包
wget -c http://www.golangtc.com/static/go/go1.4.1.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.4.1.linux-amd64.tar.gz
#把golang的bin目录加入全局环境变量
cat >>/etc/profile<
10.性能优化-监控-MySQL慢查询
frank1234
性能优化 MySQL慢查询
1.记录慢查询配置
show variables where variable_name like 'slow%' ; --查看默认日志路径
查询结果:--不用的机器可能不同
slow_query_log_file=/var/lib/mysql/centos-slow.log
修改mysqld配置文件:/usr /my.cnf[一般在/etc/my.cnf,本机在/user/my.cn
Java父类取得子类类名
happyqing
java this 父类 子类 类名
在继承关系中,不管父类还是子类,这些类里面的this都代表了最终new出来的那个类的实例对象,所以在父类中你可以用this获取到子类的信息!
package com.urthinker.module.test;
import org.junit.Test;
abstract class BaseDao<T> {
public void
Spring3.2新注解@ControllerAdvice
jinnianshilongnian
@Controller
@ControllerAdvice,是spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强。让我们先看看@ControllerAdvice的实现:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Co
Java spring mvc多数据源配置
liuxihope
spring
转自:http://www.itpub.net/thread-1906608-1-1.html
1、首先配置两个数据库
<bean id="dataSourceA" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close&quo
第12章 Ajax(下)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
BW / Universe Mappings
blueoxygen
BO
BW Element
OLAP Universe Element
Cube Dimension
Class
Charateristic
A class with dimension and detail objects (Detail objects for key and desription)
Hi
Java开发熟手该当心的11个错误
tomcat_oracle
java 多线程 工作 单元测试
#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收
测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为
推行国产操作系统的优劣
yananay
windows linux 国产操作系统
最近刮起了一股风,就是去“国外货”。从应用程序开始,到基础的系统,数据库,现在已经刮到操作系统了。原因就是“棱镜计划”,使我们终于认识到了国外货的危害,开始重视起了信息安全。操作系统是计算机的灵魂。既然是灵魂,为了信息安全,那我们就自然要使用和推行国货。可是,一味地推行,是否就一定正确呢?
先说说信息安全。其实从很早以来大家就在讨论信息安全。很多年以前,就据传某世界级的网络设备制造商生产的交