官网原文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以上
基本类型
理解数值和类型的概念是理解数据类型的基础,但是数据和类型并不局限于数据模型
什么是数值

我们说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)
mybatis-plus逆向自动生成代码总结记录
阳光不锈@
java mp逆向自动生成代码
使用mybatis-plus(mp)自动生成各个层的代码,减轻开发工作,不过现在用mybatis-flex的越来越多,综合性能更好。1.pom文件简要com.baomidoumybatis-plus-boot-starter3.5.3com.baomidoumybatis-plus-generator3.5.3org.freemarkerfreemarker2.3.32compile2.CodeG
python已知横版求竖版_python word 横版 word横版怎么设置
weixin_39541750
python已知横版求竖版
python输出word内容程序导出word文档的方法将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob、ApachePOI、Java2Word、iText等各种方式,以及使用freemarker这样的模板引擎这样的方式。php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的。其中最不好解决的就是如何将使用js代
MyBatis-Plus 混合使用 XML 和注解
mybatisplus代码生成器:版本匹配是个比较麻烦的问题,这是我的配置:com.baomidoumybatis-plus-boot-starter3.5.2com.baomidoumybatis-plus-generator3.5.2org.freemarkerfreemarker2.3.31CodeGenerator:packagecom.neuedu.hisweb.utils;import
freemarker+wkhtmltopdf生成花里胡哨的pdf记录
这题我咋不会?
Java 前端 java pdf word wkhtmltopdf
背景介绍业务需求需要最终生成pdf,这个pdf花里花哨的能达到二三十页之多,目录、页眉页脚、表格数据、图片等都需要根据数据的变化跟着变化,拿到这份需求内心是崩溃的太难了。开始寻找解决方案以前同事也通过api的方式生成过word文档,但那种样式简单,能变化的也只有表格的多少,还有一些基本信息,且不要求页眉页脚字体等。免费版api也就支持几页word或pdf,肯定不能支持如今的需求了,于是上收费版,但
FTL文件(学习FreeMarket模版语言)
目录FreeMarker是什么:核心特性:1.数据插值:2.指令:3.宏定义:4.模版继承5.应用场景:特点:FreeMarker是什么:FreeMarker是一款基于Java的模版引擎,主要在Web应用程序里生成文本输出,像HTML,XML,JSON等格式都能生成.它并不参与业务逻辑的处理,而是专注于将数据和模板整合,从而生成最终的文档,FreeMarket语言是一种简单的标记语言,包含了多种核
springboot项目运行就打开浏览器跳指定页面的操作
清少是流氓
java spring boot html
springboot项目运行就打开浏览器跳index页面第一步:配置模板引擎(freemarker)使用其他模板的可以自己配置,殊途同归。spring:freemarker:enabled:true#是否启用freemarkertemplate-loader-path:classpath:/templates/#设定模板的加载路径,在resources/templates/文件suffix:.ft
struts2五大核心jar包
love13983072282
Spring 框架 Webwork freemarker
struts2五大核心jar包1。Commons-logging.jar--------------用于通用日志处理2。Freemarker.jar--------------表现层框架,定义了struts2的可视组件主题3。Ognl.jar--------------OGNL表达式语言,struts2支持该EL4。Struts2-core.jar--------------struts22.0.
MybatisPlus自动生成代码
HeyZoeHey
java Springboot java
引入的包:com.baomidoumybatis-plus-boot-starter3.5.2com.baomidoumybatis-plus-generator3.4.1org.freemarkerfreemarker2.3.30mysqlmysql-connector-java8.0.29runtimeimportcom.baomidou.mybatisplus.core.exceptions
JEECMS
要什么昵称嘛
05 Open Source 03 J2EE 31 Web freemarker struts hibernate cms spring 扩展
JEECMS是国内比较优秀的网站管理系统,代码是开源的,目前使用的客户也比较多。官方网址:http://www.jeecms.com/技术架构:hibernate3+struts2+spring2+freemarker。其中引用的struts2的包做了小小的更改,其它的都是使用的官方包。JEECMS主要是用于文章发布的。但是由于使用了模板技术,所以可以修改或者扩展现有的标签和模板,这样就可以方便的
FreeMarker导出WORD/PDF,特殊字符处理
寻路科技
学习记录 FreeMarker WORD PDF 特殊字符
需要读取内容中,含有特殊字符,如:和?html处理。即,word: ${index}.pdf:${info.name?html}同时,如果在转为PDF时,需要直接显示内容,可以使用${r'${info.name}'}这种方式。此时,会将${info.name}直接输出,不再解析。
java实现word模板文件导出
double丶flower
java 开发语言 word ide
背景:政府项目很多用到审核完记录后填充到word文档中导出打印的功能话不多说上代码publicvoidexportDetectContractFiling(){QingDaMapqingDaMap=QingDaMap.NEW().setv("xxx","测试内容"));FreeMarkerTemplateUtil.fillTemplateMap("xxxx登记表.docx",QualityExpo
java根据word模板导出_Java通过word模板导出word
晓晓晓晓彤
java根据word模板导出
Java通过word模板导出word1.创建word模板文件,注意调整好格式,后期修改较为麻烦2.打开创建好的word模板,点击文件另存为,选择xml格式3.将生成的模板xml文件后缀改成ftl,例如:模板.xml-->模板.ftl4.在项目中引入freemarker依赖5.将模板.ftl文件放入项目resources下面的templates(自定义文件夹)6.编写代码程序。示例如下:public
Spring MVC 基础 - 从零构建企业级Web应用
小马不敲代码
SpringBoot spring mvc
引言:为什么选择SpringMVC?SpringMVC是Spring生态系统中构建企业级Web应用的核心框架,其基于MVC设计模式,天然支持模块化开发、RESTfulAPI、数据绑定等特性。核心优势:松耦合架构:模型(Model)、视图(View)、控制器(Controller)分离,便于团队协作和代码维护。高度可扩展:支持Thymeleaf、Freemarker等视图技术,兼容JSON/XML等
Spring MVC 与 FreeMarker 整合
yuren_xia
后端技术 spring mvc java
以下是SpringMVC与FreeMarker整合的详细步骤,包含配置和代码示例:1.添加依赖在pom.xml中引入SpringMVC和FreeMarker的依赖(以Maven为例):org.springframeworkspring-webmvc5.3.23org.freemarkerfreemarker2.3.322.配置SpringMVC和FreeMarker方式一:XML配置在spring
FreeMarker语法深度解析与Node.js集成实践指南
斯~内克
Node node.js
一、FreeMarker核心语法体系1.1基础模板结构${expression}1.2数据类型处理标量类型深度处理:1.3流程控制进阶${product.name}1.4复杂数据结构操作${x}=>${x?pow(2)}v>1)>1.5自定义指令开发${page}二、Node.js集成FreeMarker全方案2.1环境搭建npminstallfreemarker.js--save2.2基础渲染引
iText通过FreeMarker模板生成PDF解决方案
Roc-xb
java PDF
首先定义一个HTML模板,通过后台数据填充,生成PDF文件。目录一、所需依赖二、生成工具类三、准备模板四、字体和模板放置的位置五、生成PDF文件预览一、所需依赖com.itextpdfitextpdf5.5.11com.itextpdfitext-asian5.1.1com.itextpdf.tool
Spring3 MVC与RESTful服务实战:结合FreeMarker和jQuery JSON处理
大苏牙
本文还有配套的精品资源,点击获取简介:本整合架构结合了Spring3MVC、RESTful、FreeMarker、jQuery和JSON技术,提供了一套高效的Web开发解决方案。Spring3MVC作为后端处理核心,支持RESTfulAPI设计,通过FreeMarker模板引擎动态生成视图层,同时jQuery简化了前端操作和与JSON数据的交互。这一架构不仅优化了Web服务的接口设计,还提高了前后
ftl模板导出excel_ftl方式导出excel
weixin_39963744
ftl模板导出excel
在未接触FreeMarker以前都是通过POI和JXL导出excel,如果excel的格式复杂工作量是巨大的。如果用FreeMarker模板导出excel我们只需关注业务逻辑,对其格式可以忽略。下面是导出excel步骤1、excel另存为"xml电子表格2003"2、修改扩展名为ftl3、修改ftl内容,增加变量resMap.put("products",products);x:FullRows=
46、Spring Boot 详细讲义(三)
跟着汪老师学编程
spring boot 后端 java
五、SpringBoot与Web开发1.简介SpringBoot是基于SpringFramework开发的一个框架,旨在简化配置,快速构建应用。它内嵌Tomcat等servlet容器,支持RESTfulAPI开发,处理静态资源,以及集成视图层技术如Thymeleaf和Freemarker。2.SpringMVC集成SpringMVC是SpringFramework中用于构建Web应用的核心组件。S
velocity模板引擎-vm语法整理
菜鸟柱子
java技术 vm velocity 模板引擎
velocity模板引擎-vm语法整理模板引擎我目前接触过两次,第一次是在前后端还未分离时,考虑到部分页面数据比较固定,一定时间内不会变动,这样每次从后台加载数据渲染页面明显会消耗性能以及资源浪费,所以使用模板引擎主动生成静态页面,当时使用的是FreeMarker实现的。第二次是在邮件发送时,想要直接展示制表符等等,使用velocity引擎,vm模板实现。目录velocity模板引擎-vm语法整理
Java导出word文件
�故里
java word vue
后端创建word模板使用的是:FreeMarker,如何制作可以搜到很多的文章获取word模板工具类packagecom.jtkj.utils;importcom.itextpdf.text.Document;importcom.itextpdf.text.PageSize;importcom.itextpdf.text.pdf.PdfWriter;importfreemarker.templat
java操作html和word生成pdf,可生成目录和表格
云锦の
java功能 word目录 word表格 html转pdf页脚页眉
一:html转pdf通过继承改写ITextRenderer使itextpdf支持html转pdf时添加页脚页眉功能点一:1,通过freemarker读取html模板,将html转为pdf2,支持配置页脚页眉logo3,支持html中直接引入css样式文件4,解决img标签的图片不能写在src中的问题5,支持汉字功能点二:支持检索pdf包含的文字并替换,可做目录定位不足:1,html标签需要严格书写
spring之添加freemarker模版熏染
码农~明哥
java工具类封装 spring java 后端
前言公司在做一些基础的功能不需要重复去操作比如说单表的增删改查业务代码从controller->service->dao层的相关代码都可以不用程序员去手动编写每一行代码,能更好的利用工具很好的生成。一:引入依赖org.springframework.bootspring-boot-starter-freemarker二:案例展示privatevoidcreateSource(CodeCreatec
SpringBoot使用Websocket技术实现聊天功能--后端部分(三)
oct1025
Idea websocket spring boot 后端
所需依赖:javax.websocketjavax.websocket-api1.1providedorg.springframework.bootspring-boot-starter-freemarkerorg.springframework.bootspring-boot-starter-websocket-->org.apache.tomcat.embed-->tomcat-embed-w
springboot整合Thymeleaf详解
weiha666
spring boot
Thymeleaf介绍简单说,Thymeleaf是一个跟Velocity、FreeMarker类似的模板引擎,它可以完全替代JSP。相较与其他的模板引擎,它有如下三个极吸引人的特点:Thymeleaf在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持html原型,然后在html标签里增加额外的属性来达到模板+数
SpringMVC系列之整合Thymeleaf【Thymeleaf整合springmvc介绍及Thymeleaf基础概念、使用语法详解】
吕鑫洋
SpringMVC系列 java html js spring mvc
Thymeleaf是java的模板引擎,可以将动态页面静态化;目前使用较多的模板引擎:Velocity、Freemarker、Thymeleaf一、Maven依赖Thymeleaf整合springmvc共需要两个jar:1.thymeleaf2.thymeleaf-spring5org.thymeleafthymeleaf3.0.9.RELEASEorg.thymeleafthymeleaf-sp
springboot邮件发送与接收读取(真实使用)
dgqvhtlwq472235338
java 测试 ui
发送邮件org.springframework.bootspring-boot-starter-freemarkerorg.springframework.bootspring-boot-starter-mailorg.springframework.bootspring-boot-starter-webspring:mail:port:25username:****password:****pr
Thymeleaf vs JSP vs FreeMarker:模板引擎深度解析与选型指南
暮乘白帝过重山
java 开发语言 Thymeleaf FreeMarker JSP
以下是一篇关于Thymeleaf与其他主流模板引擎(如JSP、FreeMarker、Velocity等)的解析一、模板引擎的核心价值模板引擎是动态网页开发的关键工具,通过将数据与静态模板结合生成最终页面。其核心优势包括:动态内容渲染:通过表达式或标签实现数据动态填充;代码复用:支持模块化片段(如页头、页脚)的复用;前后端解耦:允许开发者与设计师协作,提升开发效率1712。二、主流模板引擎深度对比1
freemarker解析html标签,【转】Freemarker输出$和html标签等特殊符号
weixin_39970689
原文:http://blog.csdn.net/achilles12345/article/details/41820507场景:程序员都不喜欢看文档,而更喜欢抄例子。所以,我们把平台组的组件都做成例子供别人参考。我们前端展示层使用的是freemarker,所以遇到这个问题,比如我们要让前端显示freemarker自己的源码时就有问题了(因为我们例子程序的页面也是使用freemarker)。遇到的
Struts2的简单使用
dianbiao2276
web.xml java ui
一、准备工作及实例1.解压struts-2.1.6-all.zipapps目录:struts2自带的例子程序docs目录:官方文档。lib目录:存放所有jar文件。Src目录:源文件存放地2.六个基本包struts2-core-2.1.6.jar:开发的核心类库freemarker-2.3.13.jar:struts2的UI标签的模板使用freemarker编写commons-logging-1.
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 国产操作系统
最近刮起了一股风,就是去“国外货”。从应用程序开始,到基础的系统,数据库,现在已经刮到操作系统了。原因就是“棱镜计划”,使我们终于认识到了国外货的危害,开始重视起了信息安全。操作系统是计算机的灵魂。既然是灵魂,为了信息安全,那我们就自然要使用和推行国货。可是,一味地推行,是否就一定正确呢?
先说说信息安全。其实从很早以来大家就在讨论信息安全。很多年以前,就据传某世界级的网络设备制造商生产的交