JET Howto

原创 2005年05月04日 00:21:00

<!--[if !supportLists]-->1.   <!--[endif]-->JET

<!--[if !supportLists]-->a)        <!--[endif]-->说明:JET是一个开源的代码生成引擎,她使用一种类似JSP的语法来书写模板,模板文件会被JET引擎转换为模板实现类,用户使用模板实现类,来生成所需的目标代码。

<!--[if !supportLists]-->b)        <!--[endif]-->流程:

JET模板

模板实现类

应用程序

所需代码

<!--[if !vml]--><!--[endif]-->

 

<!--[if !supportLists]-->2.   <!--[endif]-->JET语法:

<!--[if !supportLists]-->a)        <!--[endif]-->声明JET模板:

<!--[if !supportLists]-->                      i.              <!--[endif]-->.txtjet文件:

<%@jet package="org.nick.jet" class="HelloWorld" %>

Hello World

<!--[if !supportLists]-->                   ii.              <!--[endif]-->模板实现类:

package org.nick.jet;

public class HelloWorld{

protected final String NL = System.getProperties().

getProperty("line.separator");

protected final String TEXT_1 = "Hello World";

protected final String TEXT_2 = NL;

public String generate(Object argument){

StringBuffer stringBuffer = new StringBuffer();

stringBuffer.append(TEXT_1);

stringBuffer.append(TEXT_2);

return stringBuffer.toString();

}

}

<!--[if !supportLists]-->                iii.              <!--[endif]-->应用程序:

public class HelloWorldTest {

     public static void main(String[] args) {

         HelloWorld template = new HelloWorld();

         System.out.println(template.generate(null));

     }

}

<!--[if !supportLists]-->                   iv.              <!--[endif]-->输出结果:

Hello World

<!--[if !supportLists]-->                      v.              <!--[endif]-->说明:JET模板文件必须声明后缀为.txtjet的文件。JET模板文件的开始必须声明<%@jet%>标签。上述演示了一个JET的简单使用。首先我们需要书写JET模板,该模板随后将会自动的被转换为模板实现类,然后在应用程序当中,我们只需实例化该实现类,并调用generate()方法即可。

<!--[if !supportLists]-->b)        <!--[endif]-->输入参数:

<!--[if !supportLists]-->                      i.              <!--[endif]-->.txtjet文件:

<%@jet package="org.nick.jet" class="HelloWorld" %>

Hello World,<%=argument%>!

<!--[if !supportLists]-->                   ii.              <!--[endif]-->应用程序:

public class HelloWorldTest {

     public static void main(String[] args) {

         HelloWorld template = new HelloWorld();

         System.out.println(template.generate("nick"));

     }

}

<!--[if !supportLists]-->                iii.              <!--[endif]-->输出:

Hello World,nick!

<!--[if !supportLists]-->                   iv.              <!--[endif]-->说明:我们可以通过模板实现类的generate()方法来向模板传入参数,而在模板文件当中,该参数可以通过argument变量来引用。虽然generate()的参数只是Object,但由于Java当中所有都是对象,包括数组,所以,但我们需要传入多个参数时,可以把他们作为一个Object[]数组传入,然后在模板中再强制转换回来。

 

<!--[if !supportLists]-->c)        <!--[endif]-->模板文件中的全局变量:

<!--[if !supportLists]-->                      i.              <!--[endif]-->说明:JET的模板文件定义了两个全局变量,argumentstringBuffer,因此,我们可以像上文那样,在模板文件当中,对他们进行直接的操作。

 

<!--[if !supportLists]-->d)        <!--[endif]-->模板包含:

<!--[if !supportLists]-->                      i.              <!--[endif]-->说明:通过<%@include file=""%>标签,我们可以在模板文件中引入其他文件,如果被引入文件内部含有JET指令,则该指令也将被解释。

 

<!--[if !supportLists]-->e)        <!--[endif]--><%@jet%>中的其他属性:

<!--[if !supportLists]-->                      i.              <!--[endif]-->说明:在<%@jet%>标签当中,除了上文所演示的packageclass属性以外,还有以下几个可选属性。imports,用于导入模板文件中需要用到的类;startTagendTag,由于JET模板文件默认使用“<%”和“%>”作为JET指令的开始和结束标记,而当我们需要用JET来生成类似JSP那样的文件时,这将导致一些问题,为此,JET提供了startTagendTag属性,用于修改JET指令的默认开始和结束标记;skeleton,在JET模板转换为实现类的过程中,系统都是使用一个默认的成为skeleton的文件来对模板进行翻译,而有的时候,我们可能希望对这个skeleton进行一些定制和重新指定,这就可以通过skeleton属性来完成。

 

jar打包成exe Excelsior JET使用篇(二)

Excelsior JET是一款通过提前(Ahead-Of-Time (AOT))编译技术增强的Java虚拟机,也含有当前大多数J2SE VM环境中的使用JIT编译技术。AOT编译器能够将Java代码...
  • qq_16465949
  • qq_16465949
  • 2014年08月09日 21:24
  • 2705

使用JET自动生成代码

在Eclipse的EMF里提供了一个根据模板生成代码的机制:JET。EMF就是使用JET来生成代码的。JET可以根据定制的生成模板生成最终的文本(代码)。这一节大致讲一下怎么使用JET来生成代码。  ...
  • Yangyan518
  • Yangyan518
  • 2015年12月23日 09:59
  • 1172

创建JET文件

(只挑了部分有用的翻译的) Step 1  创建一个projectStep 2  将project转换成JET project           对project单击右键选择New > Other....
  • wyhuiwyhui
  • wyhuiwyhui
  • 2011年07月13日 20:06
  • 2708

Eclipse代码生成----JET

Eclipse 的 Java Emitter Templates(JET)一个开源的模板引擎,其功能是在 Eclipse Modeling Framework(EMF)中生成代码。 JET 的语法与 ...
  • Yangyan518
  • Yangyan518
  • 2016年01月21日 10:34
  • 1203

Traffic-Control-HOWTO翻译与TC部分自己的理解

http://linux-ip.net/articles/Traffic-Control-HOWTO/components.html 翻译 4. Linux TC模块(代码在 net/sche...
  • batmancn
  • batmancn
  • 2015年12月21日 14:07
  • 914

初始化 Microsoft Jet 4.0 数据库引擎驱动程序

初始化 Microsoft Jet 4.0 数据库引擎驱动程序 安装 Microsoft® Jet 4.0 版引擎数据库驱动程序时,安装程序会向引擎中的 Microsoft Windows® 注册表和...
  • cn2004
  • cn2004
  • 2004年11月10日 16:48
  • 3687

Jet引擎和ACE引擎区别

有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎)。Jet 引擎大家都很熟悉,能访...
  • guoyansheng
  • guoyansheng
  • 2010年02月06日 14:12
  • 1297

MapInfo启动时,提示the Microsoft jet engine is not available

背景: 打开MapInfo 时,提示“The Microsoft Jet Engine is not available for error information”: 原因: ...
  • frozleaf
  • frozleaf
  • 2016年04月24日 00:15
  • 4879

OracleJet总结(1)

相关资料 requirejs学习相关资料: 官网:http://www.requirejs.cn/ 视频:https://www.youtube.com/results?search_query...
  • jack13011011591
  • jack13011011591
  • 2016年07月12日 17:55
  • 214

如何编写Linux的LCD驱动

Writing Linux LCD drivers Writing Linux LCD drivers Abstract 1 LCD Module/Driver/Controller 2 Linux ...
  • BackStrokeFish
  • BackStrokeFish
  • 2005年05月30日 10:53
  • 2565
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JET Howto
举报原因:
原因补充:

(最多只允许输入30个字)