« | August 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 访问次数:9693847 建立时间:2004年12月20日 |

| |
[template engine]StringTemplate的使用 原创空间, 软件技术, 电脑与网络
邢红瑞 发表于 2005/1/11 16:53:38 |
1 变量替换public static void fun1() { StringTemplate st = new StringTemplate( "对象变量替换 姓名:$KeyList.Name$, 年龄:$KeyList.Age$ "); HashMap ht = new HashMap(); ht.put("Name", "李四"); ht.put("Age", "35"); st.setAttribute("KeyList", ht); System.out.print(st.toString()); }2 自定义集合替换public static void fun2() { StringTemplate st = new StringTemplate( "自定义集合替换 $List:{姓名:$it.Name$ 年龄:$it.Age$}$"); st.setAttribute("List.{Name,Age}", "王二", "29"); System.out.print(st.toString());
}3 对象变量替换定义类private static class User { String name; String age;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getAge() { return age; }
public void setAge(String age) { this.age = age; } }public static void fun3() { User us = new User(); us.name = "张三"; us.age = "23"; List<User> uss = new ArrayList<User>(); uss.add(us); uss.add(us); uss.add(us); uss.add(us); uss.add(us); StringTemplate st = new StringTemplate( "<table>$Item:{<tr class=black><td>$it.name$</td></tr>},{<tr class=red><td>$it.age$</td></tr>};separator=\"\n\"$</table>"); st.setAttribute("Item", uss); System.out.print(st.toString()); } 交叉替换 public static void fun4() { User us = new User(); us.name = "张三"; us.age = "23"; List<User> uss = new ArrayList<User>(); uss.add(us); uss.add(us); uss.add(us); uss.add(us); uss.add(us);
StringTemplateGroup sg = new StringTemplateGroup("GroupTest"); sg.defineTemplate("RowRed", "<tr class=red><td>$it.Name$</td><td>$it.Age$</td></tr>\n"); sg.defineTemplate("Rowblack", "<tr class=black><td>$it.Name$</td><td>$it.Age$</td></tr>\n"); StringTemplate st = sg.defineTemplate("List", "<table>$Item:RowRed(),Rowblack()$</table>"); st.setAttribute("Item", uss); System.out.print(st.toString()); }4 条件判断public static void fun5() { StringTemplate st = new StringTemplate( "当前用户登陆状态: $if(IsAdmin)$ 用户登陆成功! $else$ 用户没有登陆! $endif$"); st.setAttribute("IsAdmin", true); System.out.print(st.toString()); }5 sql语句实现 theQuery.st内容 SELECT $column; separator=","$ FROM $table$; public static void fun6() { // 一个sql语句的实现 StringTemplateGroup group = new StringTemplateGroup("myGroup", "c:/"); StringTemplate query = group.getInstanceOf("theQuery"); query.setAttribute("column", "name"); query.setAttribute("column", "email"); query.setAttribute("table", "User"); System.out.print(query.toString()); }6 使用AttributeRenderer private static class DateRenderer implements AttributeRenderer { public String toString(Object o) { SimpleDateFormat f = new SimpleDateFormat("yyyy.MM.dd"); return f.format(((Calendar) o).getTime()); } }public static void fun7() { StringTemplate st = new StringTemplate("date: <created>", AngleBracketTemplateLexer.class); st.setAttribute("created", new GregorianCalendar(2005, 07 - 1, 05)); st.registerRenderer(GregorianCalendar.class, new DateRenderer());
String result = st.toString();
System.out.print(result.toString()); } |
|
|