« | October 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9718505 建立时间:2004年12月20日 |

| |
[template engine]html模版生成器  原创空间, 软件技术, 电脑与网络
邢红瑞 发表于 2007/5/26 14:09:20 |
本来打算做一个sql生成器,后来这样一个东东.package test;
import org.antlr.stringtemplate.StringTemplate;
public class OperatorSample {
public static void main(String[] args) { call(); } public static void call() { String[] col = new String[]{"data","1","2","3","4", "5"}; StringTemplate st = new StringTemplate( "$first(col):{it|<table>\n<tr>\n<th>$it$</th>\n}$" + "$rest(col):{it|<td>$it$</td>\n}$" + "$last(col):{it|\n</tr>\n</table>\n}$" ); st.setAttribute("col", col); System.out.println(st.toString()); }}
package test;
/** * * @author hongrui xing */import org.antlr.stringtemplate.StringTemplate;import org.antlr.stringtemplate.StringTemplateGroup;public class AccessAttributes { /** Creates a new instance of AccessAttributes */ public AccessAttributes() { } public static void main(String[] args) { call1(); } public static void call1() { // Accessing Attribute Of Enclosing Template StringTemplateGroup group = new StringTemplateGroup("html"); group.defineTemplate("record", "<tr><td>$name:{<li>$it$</li>\n}$</td></tr>"); group.defineTemplate("table", "<table>$record():{$it$}$</table>"); StringTemplate st = group.getInstanceOf("table"); st.setAttribute("name","党莹"); st.setAttribute("name","伍燕"); System.out.println(st.toString()); }}带自动变量的package test;
/** * * @author hongrui xing */import org.antlr.stringtemplate.StringTemplate;import org.antlr.stringtemplate.StringTemplateGroup;public class MultiValuedAttributes { /** Creates a new instance of MultiValuedAttributes */ public MultiValuedAttributes() { } public static void main(String[] args) { call1(); call2(); } public static void call1() { // Applying Templates To Multi-Valued Attributes StringTemplateGroup group = new StringTemplateGroup("html"); group.defineTemplate("record", "<tr><td>$it$</td></tr>\n"); group.defineTemplate("table", "<table>\n$name:record()$</table>"); StringTemplate st = group.getInstanceOf("table"); st.setAttribute("name","忽忽湖"); st.setAttribute("name","多多"); System.out.println(st.toString()); } public static void call2() { // Applying Templates To Multi-Valued Attributes StringTemplateGroup group = new StringTemplateGroup("html"); group.defineTemplate("record", "<tr><td>$i$</td><td>$it$</td></tr>\n"); group.defineTemplate("table", "<table>\n$name:record()$</table>"); StringTemplate st = group.getInstanceOf("table"); st.setAttribute("name","忽忽湖"); st.setAttribute("name","多多"); System.out.println(st.toString()); }}
package test;
/** * * @author hongrui xing */import org.antlr.stringtemplate.StringTemplate;import org.antlr.stringtemplate.StringTemplateGroup;public class AlternatingTemplate { /** Creates a new instance of AlternatingTemplate */ public AlternatingTemplate() { } public static void main(String[] args) { call1(); } public static void call1() { // Applying Alternating Templates To Multi-Valued Attributes StringTemplateGroup group = new StringTemplateGroup("html"); group.defineTemplate("green", "<tr><td color=\"green\">$it$</td></tr>\n"); group.defineTemplate("blue", "<tr><td color=\"blue\">$it$</td></tr>\n"); group.defineTemplate("table", "<table>\n$name:green(),blue()$</table>"); StringTemplate st = group.getInstanceOf("table"); st.setAttribute("name","十一"); st.setAttribute("name","北碚"); st.setAttribute("name","海蕾"); st.setAttribute("name","赛期风"); System.out.println(st.toString()); }}package test;
/** * * @author hongrui xing */import org.antlr.stringtemplate.StringTemplate;import org.antlr.stringtemplate.StringTemplateGroup;public class MultipleAttribute { /** Creates a new instance of MultipleAttribute */ public MultipleAttribute() { } public static void main(String[] args) { call1(); } public static void call1() { // Anonymous template application to multiple attributes
StringTemplateGroup group = new StringTemplateGroup("html"); group.defineTemplate("table", "<table>\n$name, age:{n, a|<tr><td>$n$</td><td>$a$</td></tr>\n}$</table>"); StringTemplate st = group.getInstanceOf("table"); st.setAttribute("name","十一"); st.setAttribute("name","北碚"); st.setAttribute("name","海蕾"); st.setAttribute("name","赛期风"); st.setAttribute("age","10"); st.setAttribute("age","8"); st.setAttribute("age","4"); st.setAttribute("age","2"); System.out.println(st.toString()); }
} |
|
|