(1) 将参数传递到模板
<%@ jet package="hello" class="GreetingTemplate" %>
Hello, <%=argument%>!
JET Builder 会将这个模板转换成hello包GreetingTemplate类。然后我们创建一个模板类的示例,把一个String对象传到generate方法里:
GreetingTemplate sayHello = new GreetingTemplate();
String result = sayHello.generate("Tutorial Reader");
System.out.println(result);
上面的代码会在控制台上打印出“Hello, Tutorial Reader!”
<其中<%=argument%>表示输出参数内容>
(2)引入包
传入模板的参数可以是任何对象。如果参数不在java.lang包里,或者你的模板使用了不在这个包里的类,你需要在模板jet中直接引入这些类。
例如:<%@ jet package="hello" imports="java.util.*" class="ImportDemoTemplate" %>
在下面的例子中我们会创建一个模板生成xml代码。注意我们传递一个包含生成xml所需数据的java.util.List对象到模板
<%@ jet package="hello" imports="java.util.*" class="XMLDemoTemplate" %>
<% List elementList = (List) argument; %>
<?xml version="1.0" encoding="UTF-8"?>
<demo>
<% for (Iterator i = elementList.iterator(); i.hasNext(); ) { %>
<element><%=i.next().toString()%></element>
<% } %>
</demo>
下面的代码说明了怎样调用模板实例。我们创建一个list并且将它传入模板实现类的generate方法。
List data = new ArrayList();
data.add("first");
data.add("second");
data.add("third");
XMLDemoTemplate generateXml = new XMLDemoTemplate();
String result = generateXml.generate(data);
System.out.println(result);
(3) 修改标签
JET一个很好的特点是你可以修改标记模板文件中脚本程序的标签。当你要生成的代码的语法与JET默认语法及其相似时这个特点十分有用。比如用JET生成JSP页面。
下一个示例将使用JET生成一个简单的JSP页面。我们将把JET标签修改为用"<$"标记脚本程序的开始,"$>"标记其结束。模板仍然包含"<%"和"%>"但是不再将其视为特殊的,它们可以像其他字符一样写在结果中。
<%@ jet package="tags.demo" class="JspTemplate" startTag="<$" endTag="$>" %>
<$ String paramName = (String) argument; /* This is an executed scriptlet */ $>
<$ if (paramName != null) { $>
<%= request.getParameter("<$=paramName$>") %> <!-- this is generated JSP -->
<$ } $>
我们仍然使用String参数调用生成的类,如下:
System.out.println(new tags.demo.JspTemplate().generate("button"));
以下输出会显示在控制台。注意输出包含了JSP的标签"<%"和"%>"
<%= request.getParameter("button") %> <!-- this is generated JSP -->