軟件是對質量的不懈追求

          StringTemplate語法

          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());
           }

          posted on 2009-11-14 13:40 BlakeSu 閱讀(1246) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 松江区| 正蓝旗| 林州市| 利辛县| 沁水县| 平山县| 西峡县| 珲春市| 治多县| 诸暨市| 萍乡市| 鹤峰县| 岐山县| 皋兰县| 密云县| 延吉市| 万年县| 石家庄市| 缙云县| 诏安县| 平湖市| 天台县| 玉龙| 锦屏县| 炉霍县| 新干县| 桃园县| 荔浦县| 古田县| 喜德县| 白城市| 四川省| 三河市| 昭平县| 平利县| 乌恰县| 武安市| 土默特右旗| 淮滨县| 两当县| 饶阳县|