体验StringTemplate

StringTemplate是一个比较优秀的开源项目,可以在 DownLoad StringTemplate下载各版本的源码.
关于如何定于模板请看:  Defining Templates   ,这篇文章将使我们对StringTemplate有个初步的认识
然后可以看看如何使用组文件:  Group Files 
接下来得看看 Expressions
看完上面的几篇文章对StringTemplate会有个大致的认识了,里面附带了大量的示例代码。
现在来定义一个简单的实体类:
using  System;

///   <summary>
///  User 的摘要说明
///   </summary>
public   class  User
{
    
public  User (  int  user_id, int  user_age, string  user_name )
    {
        
this .user_id  =  user_id;
        
this .user_age  =  user_age;
        
this .user_name  =  user_name;
    }

    
private   int  user_id;
    
private   string  user_name;
    
private   int  user_age;

    
public   int  User_id
    {
        
get  {  return  user_id; }
        
set  { user_id  =  value; }
    }

    
public   int  User_age
    {
        
get  {  return  user_age; }
        
set  { user_age  =  value; }
    }

    
public   string  User_name
    {
        
get  {  return  user_name; }
        
set  { user_name  =  value; }
    }
}
再来定义几个模板文件放在跟目录的template文件夹下:
1.page.st
< html >
  
< head >
    
< title > $title$ </ title >
  
</ head >
  
< body >
    
< h1 > $title$ </ h1 >
    $body$
  
</ body >
</ html >
2.user_list.st
< table  border ="1" >
  
< tr >
    
< th > id </ th >
    
< th > name </ th >
    
< th > age </ th >
  
</ tr >
  $users:row1(),row2()$
</ table >
3.row1.st
< tr  bgcolor ="green" >
  
< td > $it.User_id$ </ td >
  
< td > $it.User_name$ </ td >
  
< td > $it.User_age$ </ td >
</ tr >
4.row2.st
< tr  bgcolor ="red" >
  
< td > $it.User_id$ </ td >
  
< td > $it.User_name$ </ td >
  
< td > $it.User_age$ </ td >
</ tr >
row1.st和row2.st是用来实现交替行换色效果的
运行下面的代码:
User[] myUser  =   new  User[ 5 ];
 myUser[
0 =   new  User(  1  ,  10  ,  " a "  );
 myUser[
1 =   new  User(  2  ,  20  ,  " b "  );
 myUser[
2 =   new  User(  3  ,  30  ,  " c "  );
 myUser[
3 =   new  User(  4  ,  40  ,  " d "  );
 myUser[
4 =   new  User(  5  ,  50  ,  " e "  );

 StringTemplateGroup myGroup 
=   new  StringTemplateGroup(  " template "  , Server.MapPath(  " ~/template "  ) );
 StringTemplate pagest 
=  myGroup.GetInstanceOf(  " page " );
 StringTemplate bodyst 
=  myGroup.GetInstanceOf(  " user_list "  );

 pagest.SetAttribute( 
" title "  ,  " my test "  );
 pagest.SetAttribute( 
" body "  , bodyst );
 bodyst.SetAttribute( 
" users "  , myUser );

 Response.Write( pagest.ToString( ) );
显示的效果如下图:
aaa.jpg
现在不使用page.st,使用字符串代替page.st里的数据:
// StringTemplate pagest = myGroup.GetInstanceOf( "page");
sring  strTemp  =   @" <html>
                   <head>
                   <title>$title$</title>
                   </head>
                   <body>
                   <h1>$title$</h1>
                            $body$
                        </body>
                    </html>
" ;
StringTemplate pagest 
=   new  StringTemplate( myGroup , strTemp );
重新运行,看到的效果将和上图一样的.
在StringTemplate的官方网站上有大量的说明文档,这些文档里有很多的示例代码,这些是学习StringTemplate很好的资料...

转载于:https://www.cnblogs.com/doll-net/archive/2007/07/06/808475.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值