jet 是eclipse emf中的代码生成框架。
是用来专门通过模板,然后用一下参数穿进去,得到对应的文件。
功能类似与freemarker
模板文件 的语法类似于jsp的语法。
<%@ 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 -->
<$ } $>
把项目转化为 jet项目 ,就会自动创建templates,并且会在builder中添加jet bulder
设置对应工程的属性
属性中有jet settings 把
模板文件夹(temlates)、生成代码存放的文件(src)
这样你所写的模板文件,就会被动态的生成java文件。
如:
<%@ 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 -->
<$ } $>
就会在tags.demo包下创建JspTemplate类
package tags.demo;
public class JspTemplate
{
protected static String nl;
public static synchronized JspTemplate create(String lineSeparator)
{
nl = lineSeparator;
JspTemplate result = new JspTemplate();
nl = null;
return result;
}
public final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl;
protected final String TEXT_1 = "<%= request.getParameter(\" ";
protected final String TEXT_2 = "\") %> <!-- this is generated JSP -->";
public String generate(Object argument)
{
final StringBuffer stringBuffer = new StringBuffer();
String paramName = (String) argument; /* This is an executed scriptlet */
if (paramName != null) {
stringBuffer.append(TEXT_1);
stringBuffer.append(paramName);
stringBuffer.append(TEXT_2);
}
return stringBuffer.toString();
}
}
使用:
JspTemplate template=new JspTemplate();
String result= template.generate("aaa");
System.out.println(result);