取代JSP的新技术-tapestry__教程 |
|
日期:2007-5-20 1:20:47 人气:145 [大 中 小] |
|
|
|
首先看一下Home.html
<html> <head> <title>学生管理</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body bgcolor="#FFFFFF"> <p align="center">学生列表</p> <table width="100%" border="1"> <tr> <td >学号</td> <td >姓名</td> <td >性别</td> <td >班级</td> </tr> <span jwcid="liststudent"> <tr> <td><span jwcid="id">20012400</span></td> <td><span jwcid="sname">宗锋</span></td> <td><span jwcid="gender">男</span></td> <td><span jwcid="department">计算机研一</span></td> </tr> </span> <tr jwcid="$remove$"> <td>20011389</td> <td>桑一珊</td> <td>男</td> <td>计算机研一</td> </tr> </table> <a jwcid="add">添加学生</a> </body> </html>
与前面的简单应用不同,我们在这个页面中定义了七个组件,下面看一下部分Home.jwc文件,我们将详细讲述一下怎样描述这些组件。
<specification class="test.ListStudent"> <component id="liststudent" type="Foreach"> <binding name="source" property-path="student"/> <binding name="value" property-path="eachstudent"/> </component> <component id="id" type="Insert"> <binding name="value" property-path="eachstudent.id"/> </component> <component id="add" type="Page"> <static-binding name="page">EditStudent</static-binding> </component> </specification>
在这里,我们的specification的class属性值不再是BasePage,而是其派生类ListStudent。对于每一个组件,id属性指定唯一的标识符,这个值与html文件中的jwcid值相对应,type 指定组件名,binding指定组件怎得到数据,property-path是一系列属性的集合,这些属性一般定义在javabean中,例如上面的property-path="student",则在相应的javabean类ListStudent中应该有个函数getStudent。liststudent是一个Foreach组件,这个组件其实是一个for循环,它从source中读入一个数组,将其一个一个的赋值给value参数指定的属性。id,name,gender,department四个是Insert组件,这个组件用来插入文本数据,参数value指定要插入的值,property-path指定怎样获取这些值,eachstudent.id相当于调用javabean的getEachstudent().getId()。add是一个Page组件,page属性指定页面名(定义在application文件中),static-binding表明要绑定的数据是不可修改的。$remove$组件没有在这个文件中描述,因为Tapestry运行时会自动删除这种组件。 下面看一下ListStudent类:
package test; import com.primix.tapestry.*; import sun.jdbc.odbc.JdbcOdbcDriver ;
/** * 返回每个学生的数据 * */
public class ListStudent extends BasePage { private Student eachstudent; private Student[] student; public void detach() { eachstudent=null; student=null; super.detach(); }
public Student getEachstudent() { return eachstudent; } public void setEachstudent(Student value) { eachstudent = value; } public Student[] getStudent() { |
|
出处:本站原创 作者:佚名 |
|
|