`

Java模板技术

阅读更多

一 Java模板技术-velocity

    需要lib:

    velocity-1.6.3.jar,

    commons-lang-2.2.jar,

    commons-collections-3.2.jar

 

    1.

    // 配置初始化参数 
        Properties props = new Properties(); 

        props.setProperty(Velocity.INPUT_ENCODING, "utf-8");   //input.encoding
        props.setProperty(Velocity.RESOURCE_LOADER, "class");  // resource.loader
        props.setProperty("class.resource.loader.class",    //
          "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); 
               
       // 初始化并取得Velocity引擎 
       VelocityEngine ve = new VelocityEngine(props); 
       // 取得velocity的模版 
       Template template = ve.getTemplate("helloVelocity.vm");
      
       // Template实例的获取方式也可以用下面两行代码 
       // Velocity.init(props); 
       // Template template = Velocity.getTemplate("helloVelocity.vm"); 
      
      // 取得velocity的上下文context 
       VelocityContext context = new VelocityContext(); 
      // 把数据填入上下文 
       context.put("owner", "Unmi"); 
       context.put("bill", "1000"); 
       context.put("type", "报销单"); 
       context.put("date", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); 

 

 

       // 输出流,你可以自由控制输出到哪,String、File、Socket 等 
       Writer writer = new PrintWriter(System.out);       

      // 转换输出 
       template.merge(context, writer); 
       writer.flush(); 

 

     2.

     InputStream is = BaseVelocityTask.class.getClassLoader()

                                .getResourceAsStream("velocity.properties");

     Properties p = new Properties();
     p.load(is);
     is.close();
     Velocity.init(p);

     

    velocity.properties:

  input.encoding = UTF-8       //Velocity.INPUT_ENCODING
  output.encoding = UTF-8      //Velocity.OUTPUT_ENCODING
  default.contentType = text/html;charset=UTF-8    //
  resource.loader = file     / /Velocity.RESOURCE_LOADER
  file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader  
  file.resource.loader.path =

 E:\\server\\tomcat6020\\webapps\\template 

              //Velocity.FILE_RESOURCE_LOADER_PATH

  

  VelocityContext context = new VelocityContext();

  context.put("abcGames",obj);

 

 Template template = Velocity.getTemplate(MessageFormat.format(vm_path, getTemplateName()));
  for(Object key : context.getKeys()){
   context.remove(key);
  }
 // this.process();
  OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(MessageFormat.format(html_path, getTemplateName())), "UTF-8");
  template.merge(context, writer);
  writer.flush();
  writer.close();

 

 

二 velocity模板规则

 1 简单: $str

 2 javabean的vlt语法: 

  #foreach($element in $SUB)
    
<font face="Arial, Helvetica, sans-serif" >$!element.pendacca</font>
  #end

3.关于list和hashmap的显示:

 

 4.此时,如果要列出hashMap中key=“NARR”的值,可以如下:

  #foreach($element in $SUB)
 
<font face="Arial, Helvetica, sans-serif" >$!element.get("NARR")</font>
 #end

5.如果要全部列出hashmap的key-value,可以如下:

 #foreach($key in $hashVariable.keySet() ) 
 
<li> $key ‘s value: $ hashVariable.get($key) </li> 
#end 

 6.spring框架已经提供了对velocity的支持,在视图方面可以取代jsp。具体配置,可以参考“spring in action”

 

 

 

 

 

(1)Velocity http://velocity.apache.org/  (and WebMacro, FreeMarker.. etc)

(2)Tapestry http://jakarta.apache.org/tapestry/

(3)Echo http://sourceforge.net/projects/echo

(4)Cocoon (XML + XSLT) http://cocoon.apache.org/

(5)XMLC(Static DOM)  http://xmlc.enhydra.org/

(6)NekoHTML (Dynamic DOM) http://www.apache.org/~andyc/neko/doc/html/

(7)JDynamiTe(PHP Template Port)https://sourceforge.net/projects/jdynamite

 fastm

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

   List mapList = new ArrayList();
   Map hashMap 
= new HashMap();
   hashMap.put(
"NARR","myNarr in hashMap");
   mapList.add(hashMap);
   context.put(
"SUB", mapList);
分享到:
评论

相关推荐

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

    让我们深入探讨一下Freemarker在Java模板技术中的重要性和相关知识点。 1. **Freemarker的基本概念** - **模板**: 模板是Freemarker的核心,它是HTML或其他文本格式的静态部分,其中包含了一些特殊的Freemarker...

    JAVA后端技术文档模板

    **JAVA后端技术文档模板详解** 在软件开发中,一份详尽的JAVA后端技术文档是确保项目顺利进行的关键。该模板提供了清晰的结构,帮助开发者有效地组织和沟通项目细节。以下是该模板的各个部分及其详细说明: 1. **...

    java开发模版技术说明

    ### Java模板技术详解 在Java开发领域中,模板技术是一种非常重要的工具,它主要用于动态生成HTML页面、XML文档等格式的输出。通过使用模板技术,开发者可以将代码逻辑与显示层分离,使得程序结构更加清晰,同时...

    java项目文档编写模板—包含项目全流程文档模板(全)

    java项目文档编写模板—包含项目全流程文档模板(全)java项目文档编写模板—包含项目全流程文档模板(全)java项目文档编写模板—包含项目全流程文档模板(全)java项目文档编写模板—包含项目全流程文档模板(全)java项目...

    Java模板语言 Beetl

    Java模板语言Beetl是一种强大的、高性能的Java模板引擎,专为简化Web开发中的视图层处理而设计。它的设计理念是让开发者能够更自然地写出符合语义的模板代码,提高开发效率,同时保持良好的可读性和可维护性。Beetl...

    java实现模板下载功能

    本篇文章将详细阐述如何利用Java技术栈实现一个简单的模板下载功能。 #### 二、技术背景与应用场景 1. **技术背景**: - 使用Struts2框架作为后端框架。 - 使用JSP作为前端展示页面。 - 使用XML配置文件来配置...

    Java软件技术文档合集

    java软件技术文档 Java 是 Sun 公司推出的新的一代面向对象程序设计语言,特别适合于 Internet应用程序开发,它的平台无关性直接威胁到 Wintel 的垄断地位。一时间,“连Internet,用 Java 编程”,成为技术人员的一...

    企业网站模板jsp java

    企业网站模板基于JSP(JavaServer Pages)和Java技术,是一种常见的用于构建企业级Web应用程序的方式。JSP是Sun Microsystems(现已被Oracle收购)推出的一种动态网页开发技术,它允许开发者将HTML、CSS、JavaScript...

    java设计方案模板.docx

    Java 设计方案模板 Java 设计方案模板是指在软件设计过程中,使用 Java 语言编写的设计文档模板。该模板用于记录软件设计的详细过程和结果,包括设计目标、设计概述、详细设计方法和工具、系统结构设计、系统功能...

    java实现word模板的自动替换

    - **模板动态生成**:结合其他技术(如Spring EL表达式)实现更复杂的模板逻辑,使模板动态化。 综上所述,Java实现Word模板的自动替换涉及到Java基础、Apache POI库的使用以及对Word文档结构的理解。通过熟练掌握...

    java后台精美模板(一共25个)

    此外,这些模板可能使用了不同的技术栈,如Spring Boot、MyBatis、Hibernate等,这些都是Java Web开发中常用的技术,学习并掌握它们对于提升开发能力大有裨益。同时,模板中的错误处理、安全防护措施也值得仔细研究...

    java简历模板打包下载

    "java简历1.doc"和"java简历.doc"是专门针对Java开发职位的简历模板,它们可能更注重技术技能的展示。在这些模板中,求职者应详细列出自己掌握的Java技术栈,例如J2EE、Spring Boot、MyBatis、Hibernate等框架,以及...

    Java 常用技术选型.docx

    Java技术选型是软件开发中的关键决策,它直接影响项目的稳定性和效率。在Java领域,有众多优秀的框架和技术可供选择,本篇文章将详细讨论一些常用的技术选型及其应用场景。 首先,后端服务框架方面,Dubbo是一款高...

    网站后台java模板

    【网站后台Java模板】是一种基于Java技术开发的用于构建网站后台管理系统的框架或模版,它简化了开发者在实现后台功能时的代码编写工作。这种模板通常包含了一系列预定义的页面布局、样式和逻辑,使得开发者可以快速...

    Java开发文档模板

    Java开发文档模板是Java编程实践中不可或缺的一部分,它旨在提供清晰、规范的代码编写指南,以提高团队间的协作效率,确保代码质量和可维护性。在Java项目中,良好的文档能够帮助开发者理解项目的架构、功能和设计...

    java软件技术文档(软件需求规格说明文档模板)

    《Java软件技术文档——软件需求规格说明文档模板》 软件需求规格说明文档是软件开发过程中的重要组成部分,它详细定义了软件的功能、性能、界面以及与其他系统交互的方式。这份模板适用于Java软件开发,为开发者...

    Java简历模板下载

    Java 简历模板是 Java 开发者在求职时的重要工具,需要详细列出自己的个人信息、自我评价、技能、项目经验、教育经历、证书和其他技能等信息,以便让招聘者更好地了解自己的职业能力和技术栈。 资源链接:...

    java简历模板

    Java 简历模板知识点总结 Java 简历模板是 Java 开发者找工作的参考模板,涵盖了个人基本信息、教育经历、自我评价、IT 技能、工作经验、项目经验等多个方面。下面是 Java 简历模板中出现的知识点总结: 一、Java ...

    java软件工程师简历模板

    Java软件工程师是信息技术行业中一个非常重要的角色,他们负责设计、编码、测试以及维护Java应用程序,以满足企业或组织的各种业务需求。在这个竞争激烈的市场中,一份精心制作的简历是求职者打开成功之门的关键。本...

    用java的poi技术导出world模板

    在本文中,我们将深入探讨如何利用POI技术来导出Word模板,以及在这个过程中可能遇到的关键知识点。 首先,我们需要理解Apache POI的工作原理。POI是一个开源项目,它提供了一系列API,使得开发者可以读写Microsoft...

Global site tag (gtag.js) - Google Analytics