快速业务通道

使用EMP进行建模,第2部分:使用Eclipse的Java Emitter Templates生成代码 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
.ibm.pdc.example.jet.model.*"    %>

清单 1 的内容是真正自解释的。在编译 JET 模板时,会创建一个 Java 文件 GenDAO ,并将其保存到 com.ibm.pdc.example.jet.gen 中,它将导入指定的包。重复一遍,这 只是说明模板像什么样子,而不是模板将要生成的内容 -- 后者稍后将会介绍。注意 JET 输出结果的 Java 文件名是在 jet 的声明中定义的,它并不局限于这个文件名。如果两 个模板声明了相同的类名,那么它们就会相互影响到对方的变化,而不会产生任何警告信 息。如果您只是拷贝并粘贴模板文件,而没有正确地修改所有的 jet 声明,那就可能出 现这种情况。因为在模板目录中创建新文件时会产生警告,而拷贝和粘贴是非常常见的, 因此要自己小心这个问题。

JSP 可以通过预先声明的变量(例如会话、错误、上下文和请求)获取信息, JET 与 此类似,也可以使用预先声明的变量向模板传递信息。JET 只使用两个隐式的变量: stringBuffer ,其类型为 StringBuffer (奇怪吧?),它用来在调用 generate() 时 构建输出字符串;以及一个参数,出于方便起见,我们称之为 argument ,它是 Object 类型。典型的 JET 模板的第一行会将其转换为一个更适合的类,如清单 2 所示。

清单 2. JET 参数的初始化

<% GenDBModel genDBModel =  (GenDBModel)argument; %> package <%= genDBModel.getPackageName() %>;

正如您可以看到的一样,JET 的缺省语法与 JSP 相同:使用 <%...%> 包括代 码,使用 <%= ... %> 打印表达式的值。与 JSP 类似,正确地使用 <% ... % > 标签就可以添加任何逻辑循环或结构,就像是在任何 Java 方法中一样。例如:

清单 3. 脚本和表达式

Welcome <%= user.getName() %>! <% if ( user.getDaysSinceLastVisit() > 5 ) { %> Whew, thanks for coming back. We thought we''d lost you! <% } else { %> Back so soon? Don''t you have anything better to do? <% } %>

使用EMP进行建模,第2部分:使用Eclipse的Java Emitter Templates生成代码(2)

时间:2011-03-26 IBM Adrian Powell

在定义完 JET 之后,保存文件并在包浏览器中在这个文件上点击鼠标右键,选择 Compile Template。如果一切正常,就会在 com.ibm.pdc.example.jet.gen 包中创建一 个类 GenDAO 。其中只有一个方法 public String generate(Object argument) (参见 清单 4),这样做的结果就是在 javajet 模板中定义的内容。

清单 4. 一个基本的 JET 编译后的 Java 类,其功能是打印 "Hello <% =argument%>"

package com.ibm.pdc.example.jet.gen; import java.util.*; public class GenDAO {   protected final String NL = System.getProperties().getProperty ("line.separator");   protected final String TEXT_1 = NL + "Hello, ";   protected final String TEXT_2 = NL + "\t ";   public String generate(Object argument)   {    StringBuffer stringBuffer = new StringBuffer();    stringBuffer.append(TEXT_1);    stringBuffer.append( argument );    stringBuffer.append(TEXT_2);    return stringBuffer.toString();   } }

编写好模板之后,您可能就会注意到一些公共的元素,这些元数会反复出现,例如所 有生成的代码中都添加的版权信息。在 JSP 中,这是通过 include 声明处理的。将所有 想要添加的内容都放到一个文件中,并将该文件命名为 ''copyright.inc'',然后在 javajet 模板中添加 <%@ incl

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号