取代JSP的新技术-tapestry__教程 |
|
日期:2007-5-20 1:20:47 人气:145 [大 中 小] |
|
|
|
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); student=StudentFactory.findAllStudents(); }catch(Exception e){ e.printStackTrace(); } return student;
}
}
这个类有四个函数,其中detach函数是将页面放入缓冲池时执行的操作,getStudent函数返回所有的学生记录,这是给jwc文件中liststudent组件的source参数赋值,getEachstudent给这个组件的value参数赋值,因为source是一个数组,每次循环需要从中取出一条记录赋值给eachstudent,所以还有一个函数为setEachstudent,你会注意到这个函数很简单,其实是Tapestry帮你做了大部分工作。 至此,显示学生的部分已经完成,下面看一下EditStudent.html
<html> <head> <title>增加学生</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <p><img src="http://www.mbsky.com/infoview/student.gif" width="32" height="32"/> 学生管理系统</p> <form jwcid="form"> <span jwcid="ifError"> <font size=+2 color=red><span jwcid="insertError"/></font> </span> <p>学号: <input jwcid="id"/> </p> <p>姓名: <input jwcid="name"/> </p> <span jwcid="gender"> <p>性别: <input jwcid="male"/> 男 <input jwcid="female"/> 女 </p> </span> <p>班级: <input jwcid="department"/> </p> <p> <input type="submit" value="确定"> </p> </form> </body> </html>
在这个文件中,用到了另外一些常用的组件,先看一下EditStudent.jwc中的这些组件的描述:
<specification class="test.EditStudent"> <component id="form" type="Form"> <binding name="listener" property-path="listeners.formSubmit"/> </component> <component id="gender" type="RadioGroup"> <binding name="selected" property-path="gender"/> </component> <component id="ifError" type="Conditional"> <binding name="condition" property-path="error"/> </component> <component id="insertError" type="Insert"> <binding name="value" property-path="error"/> </component> <component id="id" type="TextField"> <binding name="value" property-path="id"/> </component> <component id="male" type="Radio"> <field-binding name="value" field-name="test.EditStudent.MALE"/> </component> </specification>
form是一个Form组件,它的参数listener指定submit这个form时有那个函数处理。ifError是一个Conditional组件,这个组件指定当condition满足时才会显示,在本例中,如果error不为空,则condition满足。在这个组件中,有嵌套了一个Insert类型的组件,用于将错误显示。这是Tapestry中经常用到的处理错误的方式。gender是一个RadioGroup组件,它绑定了javabean中的gender属性,selected参数指定那个radio被选中,在这个组件中,又嵌套了两个Radio组件,分别用来表示男,女。Radio的value参数指定当用户选定这个radio时,RadioGroup绑定的属性值将会等于field-name中指定的值(这个值必须是static的),在本例中,gender=test.EditStudent.MALE。id是一个TextField组件,其参数value绑定到javabean中的id属性。 下面是相应的EditStudent类:
package test; import com.primix.tapestry.*;
public class EditStudent extends BasePage { public static final int MALE = 1; |
|
出处:本站原创 作者:佚名 |
|
|