JET学习笔记(二)

来源:互联网 发布:国内数据交易平台 编辑:程序博客网 时间:2024/05/21 06:18

(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 -->