<%@ jet package="com.foo.jet.generated" class="HelloJet" %> Hello, JET.
| Template種別 | 推奨拡張子 |
| テキストを作るTemplate | *.txtjet |
| XMLを作るTemplate | *.xmljet |
| Javaソースを作るTemplate | *.javajet |
| JSPを作るTemplate | *.jspjet |
| directive | 意味 | 例 |
| package | 生成されるGeneratorのpackage名 | com.foo.jet.generated |
| class | 生成されるGeneratorのclass名 | HelloJET |
| imports | 利用するクラス。スペース区切りで指定 | java.util.* java.math.* |
| startTag | JET内にプログラムを書くときの開始タグ。省略時は"<%" | "[%"など |
| endTag | JET内にプログラムを書くときの終了タグ。省略時は"%>" | "%]"など |
| skelton | 生成されるGeneratorクラスのひな形クラス | |
| nlString | nl=new line。改行文字。省略時は System.getProperties*().getProperty("line.separator") |
package com.foo.jet.generated;
public class HelloJet
{
protected static String nl;
public static synchronized HelloJet create(String lineSeparator)
{
nl = lineSeparator;
HelloJet result = new HelloJet();
nl = null;
return result;
}
protected final String NL
= nl == null ? (System.getProperties().getProperty("line.separator")) : nl;
protected final String TEXT_1 = "Hello, JET.";
public String generate(Object argument)
{
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(TEXT_1);
return stringBuffer.toString();
}
}package com.foo.jet;
import com.foo.jet.generated.HelloJet;
public class HelloJetInvoker {
public static void main(String[] args) {
HelloJet generator = HelloJet.create(null);
String result = generator.generate(null);
System.out.println(result);
}
}Hello, JET.
<%@ jet package="com.foo.jet.generated" class="HelloJet" %> Hello, <%= argument%>.
package com.foo.jet;
import com.foo.jet.generated.HelloJet;
public class HelloJetInvoker {
public static void main(String[] args) {
HelloJet generator = HelloJet.create(null);
String result = generator.generate("Taro");
System.out.println(result);
}
}Hello, Taro.
<%@ jet
package="com.foo.jet.generated"
class="HelloJet"
imports="java.util.*" %>
Hello,
<%
// 引数の内容を列挙
Collection col = (Collection)argument;
for( Iterator it = col.iterator() ; it.hasNext() ; ){
stringBuffer.append(it.next());
stringBuffer.append(",");
}
// 最後のピリオドを消す
stringBuffer.deleteCharAt(stringBuffer.length()-1);
%>.package com.foo.jet;
import com.foo.jet.generated.HelloJet;
public class HelloJetInvoker {
public static void main(String[] args) {
HelloJet generator = HelloJet.create(null);
Collection students = new LinkedList();
students.add("Taro");
students.add("Jiro");
students.add("Sabro");
String result = generator.generate(students);
System.out.println(result);
}
}Hello, Taro,Jiro,Sabro.
JSPの生成の場合、JSPタグの"<%","%>"と、JETの"<%","%>"が混ざってしまいます。このようなときのためにJETではタグを変更できるようになっています。ここでは"[%","%]"を使います。
<%@ jet
package="com.foo.jet.generated"
class="HelloJSP"
imports="java.util.*"
startTag="[%"
endTag="%]" %>
[%
String pageName = (String)((Map)argument).get("PAGE_NAME");
String actionName = (String)((Map)argument).get("ACTION_NAME");
%]
<%@page contentType="text/html;charset=Shift_JIS" session="true" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html>
<head>
<title>[%=pageName%]</title>
</head>
<body>
<html:form action="[%=actionName%]">
<table>
<tr><td>注文番号</td><td>:</td><td><html:text parameter="orderNo"/></td></tr>
<tr><td>注文個数</td><td>:</td><td><html:text parameter="orderAmount"/></td></tr>
<tr><td colspan="3" align="right"><html:submit/></td><tr>
</table>
</html:form>
</body>
</html>package com.foo.jet;
import java.util.HashMap;
import java.util.Map;
import com.foo.jet.generated.HelloJSP;
public class HelloJSPInvoker {
public static void main(String[] args) {
HelloJSP generator = HelloJSP.create(null);
Map<String,String> argMap = new HashMap<String,String>();
argMap.put("PAGE_NAME","Order1.jsp");
argMap.put("ACTION_NAME","/OrderAction1");
System.out.println( generator.generate(argMap));
}
}
<%@page contentType="text/html;charset=Shift_JIS" session="true" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html>
<head>
<title>Order1.jsp</title>
</head>
<body>
<html:form action="/OrderAction1">
<table>
<tr><td>注文商品</td><td>:</td><td><html:text parameter="orderNo"/></td></tr>
<tr><td>注文個数</td><td>:</td><td><html:text parameter="orderAmount"/></td></tr>
<tr><td colspan="3" align="right"><html:submit/></td><tr>
</table>
</html:form>
</body>
</html>JETで生成されるGeneratorは普通のPOJOで特定のライブラリに依存しないので、プログラムのGeneratorとしてだけではなく、アプリ中での帳票のGeneratorとして使うことも出来る。
<%@ jet
package="com.foo.jet.generated"
class="ExpReultGenerator"
imports="java.util.*" %>
試料番号,経過時間,温度,電圧
<%
Collection col = (Collection)argument;
for( Iterator it = col.iterator() ; it.hasNext() ; ){
ExamResult res = (ExamResult)it.next());
%>
<%= res.getId() %>,<%= res.getTime() %>,<%= res.getTemp() %>,<%= res.getVol() %>
<%
}
%>