`

freeMarker在java应用程序中的应用

阅读更多

java中使用freemarker生成静态页面文件(支持多语言):
FreeMarkerTest:

 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
 import java.util.HashMap;
 import java.util.Locale;
 
 import freemarker.template.Configuration;
 import freemarker.template.Template;

public class FreeMarkerTest {

    public static void main(String[] args) {
        FreeMarkerTest test = new FreeMarkerTest();
         test.getFile();
         test.getFile(Locale.JAPAN);
    }
   
     public void getFile() {
         Configuration freemarkerCfg = new Configuration();
         freemarkerCfg.setClassForTemplateLoading(this.getClass(),"/");
         freemarkerCfg.setEncoding(Locale.getDefault(),"UTF-8");
         Template template;
        try {
             template = freemarkerCfg.getTemplate("t.ftl");
             template.setEncoding("UTF-8");
             File htmlFile = new File("t.html");
            Writer out = new BufferedWriter(new OutputStreamWriter(
                    new FileOutputStream(htmlFile), "UTF-8"));
             HashMap propMap = new HashMap();
            propMap.put("user", "hermit");
             template.process(propMap, out);
            out.flush();
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
   
     public void getFile(Locale loc) {
         Configuration freemarkerCfg = new Configuration();
         freemarkerCfg.setClassForTemplateLoading(this.getClass(),"/");
         freemarkerCfg.setEncoding(Locale.getDefault(),"UTF-8");
         Template template;
        try {
            template = freemarkerCfg.getTemplate("t.ftl",loc);
            template.setEncoding("UTF-8");
            File htmlFile = new File("t_"+loc.getLanguage()+"_"+loc.getCountry()+".html");
            Writer out = new BufferedWriter(new OutputStreamWriter(
                    new FileOutputStream(htmlFile), "UTF-8"));
            HashMap propMap = new HashMap();
            propMap.put("user", "hermit");
            template.process(propMap, out);
             out.flush();
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
}
 

t.ftl

<html>
<head>
  <title>Welcome!</title>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
</head>
<body>
  <h1>Welcome ${user}!</h1>
</body>
</html> 

 

t_zh_CN.ftl

<html>
<head>
  <title>欢迎!</title>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
</head>
<body>
  <h1>你好 ${user}!</h1>
</body>
</html>  


freemarker支持多语言国际化,只要把模板名称安装资源文件的写法就可以了,也就是name_语言_国家地区.ftl

如果找不到对应的语言,就会用默认语言的模板。

顺便抱怨一下,freemarker对于空值的处理太霸道了,没有值你就写个空或者写KEY也可以啊,弄一堆出错信息在那。。。。。。。。。。。。。。

 

6
0
分享到:
评论

相关推荐

    基于freemarker的JAVA代码生成工具

    在软件开发过程中,尤其是企业级应用,大量重复性的代码编写工作是常见的现象,比如创建与数据库表对应的Java实体类、Service接口及实现、Controller以及MyBatis的Mapper和XML配置文件。为了提高开发效率,减少人力...

    使用FreeMarker生成java代码

    总的来说,“使用FreeMarker生成java代码”这个话题涵盖了模板引擎的基本概念、FreeMarker的语法特性以及如何结合Java应用来实现代码生成。通过学习和实践,开发者可以更加熟练地运用FreeMarker这一强大的工具,提升...

    java中freemarker实现对word的操作

    在Java开发中,FreeMarker是一个强大的模板引擎,常用于生成HTML、XML等动态内容。然而,它也可以扩展到处理其他类型的文档,如Microsoft Word(....这种技术组合使得在Java应用程序中生成和修改Word文档变得更加便捷。

    freemarker中文API手册

    * 非Web应用程序:FreeMarker也可以应用于非Web应用程序环境,如生成XML、RTF、Java源代码等。 * 模板引擎:FreeMarker可以作为模板引擎,用于生成各种文本输出。 FreeMarker是一个功能强大且灵活的模板引擎,广泛...

    Java freemarker 模板生成word动态表格

    5. **数据模型**:在Java程序中,你需要创建一个数据模型,通常是一个Map或一个自定义的Java对象,其中包含了将要填充到模板中的数据。这些数据可以是列表、数组或其他复杂的数据结构。 6. **模板与数据合并**:...

    FreeMarker 生成Java、mybatis文件

    在Java应用中,我们通常会创建一个FreeMarker模板,这个模板包含静态文本和变量占位符。当程序运行时,这些占位符会被实际的数据替换,生成最终的文件。FreeMarker支持条件判断、循环、包含其他模板等功能,使得代码...

    java freemarker导出word -包含多张图片导出

    在Java应用中,使用FreeMarker导出Word文档可以提供灵活的文本和数据结合的方式,尤其适用于生成报告、合同等复杂格式的文档。本篇将详细介绍如何使用FreeMarker与Java结合来导出包含多张图片的Word文档。 1. **...

    freemarker java模板技术 很详细的注释

    - **数据模型**: Java应用程序会创建一个数据模型,将数据传递给Freemarker,模板则根据这些数据生成最终输出。 2. **Freemarker语法** - **变量表达式**: `${variable}` 用于输出Java对象的属性值。 - **三元...

    freemarker 可运行java 小demo

    通过运行这个小demo,初学者可以亲身体验Freemarker的工作流程,了解如何在Java应用中集成模板引擎,以及如何设计和使用模板。同时,这个项目也是练习Java与Freemarker结合的好素材,能够帮助初学者更好地理解和掌握...

    freemarker 自定义freeMarker标签

    FreeMarker 是一个强大的模板引擎,常用于Java应用中生成HTML、XML等动态内容。它允许开发者使用简单的模板语言(TL)来分离业务逻辑和视图层。本篇将深入探讨如何自定义FreeMarker标签,以扩展其功能并适应特定项目...

    基于Freemarker代码生成程序

    在本项目中,Freemarker被用来生成Java源代码,这些代码通常包括实体类(Entity)、数据访问对象(DAO)、服务接口(Service Interface)和服务实现(Service Implementation)等,它们与数据库表一一对应。...

    freemarker 2.3.18 中文手册

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,特别是在Java环境中。它是一种基于文本模板的语言,能够将数据模型与HTML或其他格式的文档结合,生成动态内容。这个2.3.18版本的中文手册是开发者...

    java+Freemarker生成word

    在企业级应用中,这种技术尤其有用,因为它允许开发者根据数据库或其他数据源中的信息自动生成Word文档,无需手动编写。 Java是面向对象的编程语言,而Freemarker则是一个模板引擎,它主要用于生成文本输出,如HTML...

    json、post请求、freemarker模拟生成sql、wsdl2Java生成客户代码

    例如,运行`wsdl2java`命令并指定WSDL文件路径,就能自动生成相应的Java源码,然后编译这些源码,就可以在Java应用中直接调用Web服务了。 以上四个知识点涵盖了Java开发中数据交换、网络通信、动态内容生成和Web...

    freemarker简单示例

     虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据  FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件  FreeMarker与容器无关...

    java导出word之freemarker导出程序

    Java导出Word是Java开发中常见的一项任务,特别是在企业级应用中,经常需要将数据以文档形式导出供用户下载或打印。在这个场景下,Freemarker作为一个强大的模板引擎,被广泛用于动态生成Word文档。下面我们将深入...

    Freemarker简介及标签详解大全

    5. 通用数据模型:FreeMarker 不是直接反射到 Java 对象,Java 对象通过插件式对象封装,以变量方式在模板中显示。 6. 为 Web 准备:在模板语言中内建处理典型 Web 相关任务(如 HTML 转义)的结构。 7. 智能的国际...

    通过freemarker模板 生成PDF

    2. **准备数据模型**:在Java代码中,创建一个对象或Map,包含将要填充到模板中的数据。 3. **处理模板**:使用Freemarker API的`Configuration`和`Template`类,将数据模型应用到模板上,生成HTML字符串。 4. **...

    FreeMarker_2.3.23 中文

    FreeMarker 是一个强大的模板引擎,常用于Web应用开发中的视图层,特别是在Java平台上。它与JSP、Servlet等技术配合使用,可以实现MVC(Model-View-Controller)架构中的视图部分,帮助开发者将业务逻辑与表现层分离...

    java-根据word模板生成word-freemarker-完整示例

    这些模板定义了Word文档的结构和内容,其中的占位符(如`${variable}`)会被Java程序中的实际数据替换。XML模板允许更灵活的数据结构和格式化,适应各种复杂的Word文档生成需求。 4. **运行Test.java**: Test....

Global site tag (gtag.js) - Google Analytics