StringTemplate是一个比较优秀的开源项目,可以在 DownLoad StringTemplate下载各版本的源码.
关于如何定于模板请看: Defining Templates ,这篇文章将使我们对StringTemplate有个初步的认识
然后可以看看如何使用组文件: Group Files
接下来得看看 Expressions
看完上面的几篇文章对StringTemplate会有个大致的认识了,里面附带了大量的示例代码。
现在来定义一个简单的实体类:
1.page.st
运行下面的代码:
![](https://www.cnblogs.com/images/cnblogs_com/doll-net/aaa.jpg)
现在不使用page.st,使用字符串代替page.st里的数据:
在StringTemplate的官方网站上有大量的说明文档,这些文档里有很多的示例代码,这些是学习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文件夹下:/// <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; }
}
}
1.page.st
<html>
<head>
<title>$title$</title>
</head>
<body>
<h1>$title$</h1>
$body$
</body>
</html>
2.user_list.st<head>
<title>$title$</title>
</head>
<body>
<h1>$title$</h1>
$body$
</body>
</html>
<table border="1">
<tr>
<th>id</th>
<th>name</th>
<th>age</th>
</tr>
$users:row1(),row2()$
</table>
3.row1.st<tr>
<th>id</th>
<th>name</th>
<th>age</th>
</tr>
$users:row1(),row2()$
</table>
<tr bgcolor="green">
<td>$it.User_id$</td>
<td>$it.User_name$</td>
<td>$it.User_age$</td>
</tr>
4.row2.st<td>$it.User_id$</td>
<td>$it.User_name$</td>
<td>$it.User_age$</td>
</tr>
<tr bgcolor="red">
<td>$it.User_id$</td>
<td>$it.User_name$</td>
<td>$it.User_age$</td>
</tr>
row1.st和row2.st是用来实现交替行换色效果的<td>$it.User_id$</td>
<td>$it.User_name$</td>
<td>$it.User_age$</td>
</tr>
运行下面的代码:
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( ) );
显示的效果如下图: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( ) );
![](https://www.cnblogs.com/images/cnblogs_com/doll-net/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 );
重新运行,看到的效果将和上图一样的.sring strTemp = @"<html>
<head>
<title>$title$</title>
</head>
<body>
<h1>$title$</h1>
$body$
</body>
</html>";
StringTemplate pagest = new StringTemplate( myGroup , strTemp );
在StringTemplate的官方网站上有大量的说明文档,这些文档里有很多的示例代码,这些是学习StringTemplate很好的资料...