freemarker的中文乱码问题,在项目过程总是遇到,记录下来,方便以后运用。项目中两处用到freemarker,一是邮件发送静态页面。二是做统计时,要用flash的饼图和柱状图显示,在网上找到一个,只需要让配置的xml动态变化,用freemarker动态生成其配置文件。首先,freemarker是支持国际化的,模板的文件名如:bargain_zh_CN.ftl,要加上_zh_CN。把写的程序贴上来方便查。
public class TemplateConfiguration {
/**
* 传入装有信息的root,模板文件所在的路径pah和模板文件名fileName
* 返回的是经过map信息改变后的摸板内容
*/
public static String getEmailContext(Map root,String path,String fileName) throws Exception{
Configuration cfg = new Configuration();
cfg.setEncoding(Locale.getDefault(), "UTF-8");
cfg.setDirectoryForTemplateLoading(new File(path));
cfg.setObjectWrapper(new DefaultObjectWrapper());
cfg.setCacheStorage(new freemarker.cache.MruCacheStorage(20,250));
Template temp = cfg.getTemplate(fileName);
temp.setEncoding("UTF-8");
java.io.StringWriter stringWriter = new StringWriter();
Writer out = new BufferedWriter(stringWriter);
temp.process(root, out);
out.flush();
//System.out.println(stringWriter.toString());
return stringWriter.toString();
}
/*
* 获取信息生成flash配置文件的xml
*root 中为要要写入模板中的信息,path为模板所在路径,fileName为模板文件名
*outFile为生成文件的路径和文件名(*.xml,*.html,.......)
*/
public static void getTemplateContext(Map root,String path,String fileName,String outFile) throws Exception{
Configuration cfg = new Configuration();
cfg.setEncoding(Locale.getDefault(), "UTF-8");
cfg.setDirectoryForTemplateLoading(new File(path));
cfg.setObjectWrapper(new DefaultObjectWrapper());
cfg.setCacheStorage(new freemarker.cache.MruCacheStorage(20,250));
Template temp = cfg.getTemplate(fileName);
temp.setEncoding("UTF-8");
Writer writerFile = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
temp.process(root,writerFile);
writerFile.flush();
}
}
分享到:
相关推荐
Freemarker简介及标签详解大全 Freemarker简介及标签使用说明
本人工作时项目需要用到freemarker,所有公司给了我这个手册让我学习,这本手册我觉得很好,只需要你花一点时间去看,那么你就能掌握freemarker的应用,比较简单易懂。加油吧!
在开发web项目的时候使用到的页面展现技术,它并...总体,该文档能够提供所有常用的freemarker操作,示例和简略的讲解可以让人一下子就能上手,效率极高。 适合做快速查阅册子,同时也非常适合初学者和骨灰开发者使用。
FreeMarker页面制作规范 页面规范的重要性 宏的简介 项目中常用宏的使用方法 页面元素规范 FreeMarker常用技巧
本人最近学习了传智播客的一个电商项目,把里面用到的工具和大家分享一下,方便大家的javaweb的学习。-freemarker模板引擎
JAVA模版引擎Freemarker常用标签(一) 1. if指令 这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>......
最近比较折腾,项目里需要用到静态化,于是就抽时间学习了一下。使用main方法执行,对于刚学习的人来说非常合适的例子。
宜立方商城(淘淘商城) 包含 FasrDFS freemarker等用到的----------我的资源中还有静态页面和其它工具累 完整项目代码地址:https://github.com/steamyao/e3mall
一款mybatis基本CRUD从java代码...(Done)快速指南只需要3步就可以快速生成常用的CRUD代码和映射文件配置扫描实体的包路径:domain.package = com.zheng.example.domain根据步骤1生成实体包路径,并放入实体类文件,比如...
本课程全程使用目前比较流行的开发工具idea进行开发,涉及到目前互联网项目中最常用的高并发解决方案技术, 如 dubbo,redis,solr,freemarker,activeMQ,springBoot框架,微信支付,nginx负载均衡,电商活动秒杀,spring...
2.commons-io.jar(commons项目(commons项目就是java中一些常用的公共的组件)的io子项目,是处理异常的) 3.freemarker-2.3.15.jar(支持freemarker的,在webwork中也有) 4.javassist.jar(一个开源的分析、编辑...
Struts2用到的核心jar包: ... 在Struts2中提倡使用 freemarker模板,但实际项目中使用jsp也很多。 commons-fileupload-1.2.1.jar 用于实现文件上传功能的jar包。 使用时候将5个Struts2的核心Jar包到WEB-INF/lib/下
2.commons-io.jar(commons项目(commons项目就是java中一些常用的公共的组件)的io子项目,是处理异常的) 3.freemarker-2.3.15.jar(支持freemarker的,在webwork中也有) 4.javassist.jar(一个开源的分析、编辑...
后台采用Spring,SpringMVC,MyBatis,FreeMarker等技术,数据库用到MySQL,Redis,前端用到jQuery,artTemplate。本项目采用Maven构建,导入后需要:修改df.properties中的mysql.password,redis.password,mail....
后端主要用到的技术: JDK8、MySql、SpringBoot、Spring—data-jpa、Lombok、Freemarker、Bootstrap、WebSocket 前端主要用到的技术: 微信小程序开发 【备注】 主要针对计算机相关专业的正在做毕设的学生和需要项目...
Spring Boot Demo 是一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型项目。 特性&提供 集成SpringFox-Swagger2,自动生成swagger注释 统一响应结果封装及生成工具 统一异常处理 常用基础方法抽象...
项目说明:本博客是学习过程中建造的项目,为了融合更多知识点,让博客看起来更加高大上,使用了多个框架组合,有些也是企业级项目中常用的解决方式。多内容内容的,通常是xss攻击预防等安全方面的。项目结构: e...
基于SpringBoot前后端分离的点餐系统 开发环境:主要采用Spring...后端主要用到的技术: JDK8、MySql、SpringBoot、Spring—data-jpa、Lombok、Freemarker、Bootstrap、WebSocket 前端主要用到的技术: 微信小程序开发
说明:参考了公司的一些项目以及springside,集成了一些常用框架,特色功能如下: shiro: 1.支持shiro数据库配置权限。 2.支持在方法级别上控制权限。 quartz: 1.页面配置Trigger以及选择Job任务来开启定时器。 2...
代码仅供参考学习! 代码仅供参考学习! 代码仅供参考学习! 该项目前端是高仿某在线教育网站,后端... 项目目前就用到以上技术,后续不排除会加入其他技术,但为了避免项目臃肿,不会让项目变成一个技术的全家桶。