WEB开发网
开发学院软件开发Java 使用 Eclipse Modeling Framework 进行建模,第 2... 阅读

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

 2009-12-17 00:00:00 来源:WEB开发网   
核心提示: 清单 1. 样例 jet 声明<%@jetpackage="com.ibm.pdc.example.jet.gen"class="GenDAO"imports="java.util.*com.ibm.pdc.example.jet.mode


清单 1. 样例 jet 声明
<%@ jet 
  package="com.ibm.pdc.example.jet.gen" 
  class="GenDAO" 
  imports="java.util.* com.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 方法中一样。例如:

上一页  1 2 3 4 5 6 7 8  下一页

Tags:使用 Eclipse Modeling

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接