本文详细介绍下一代WEB开发模式Tapestry简介
Component元素是对HTML模板中引用的组件的定义,id属性名一定要与HTML模板中的jwcid一样,type指定了这个组件属于哪种类型,在本例中为Insert组件,Insert组件是Tapestry中的一个基本组件,它的作用是在HTML模板中插入指定的文本,待插入的文本的值由Insert的value属性来决定,在本例中,value属性的表达式值是userName。你这时候可能会觉得越看越糊涂:那为什么最后运行结果会是Jack呢?不要着急,关于这个我们马上就要详细地进行讲解。我们还是先看一下最后一个元素context-asset,这个元素是定义这个Page组件要用到的一些附加资源,比如图像、css格式文件等等之类的东西
现在我们开始认真地讲一下<binding name="value" expression="userName"/>这个元素的含义,由于HTML模板嵌入的是一个Insert类型的组件,而Insert组件的功能是插入一段文本到HTML模板中去,对于本例而言,或许可以直接地指定要插入文本的内容为“Jack”,但对一个实际的应用来说,往往是要从数据库从取出用户的名称,然后将该名称插入到HTML模板中去,那么就不能直接指定文本的内容了,怎么办呢?我们马上想到的办法是:指定一个JAVA类,通过javaBean的属性方法来获得数据库中的用户名,就像jsp中的<jsp getProperty … />标签一样,不错,这的确是一个好方法,tapestry正是这样做的,因此<binding name="value" expression="userName"/>这个元素中的expression的值正是demo.Home这个JAVA类的一个属性,也就是说将demo.Home这个类的userName属性绑定到Insert组件的value属性中去,而我们的创始人Howard Lewis Ship先生并没有重头对这个绑定的功能进行设计,因为在软件开发中有一句著名的话:”不要重复地发明同一个轮子“,这个绑定功能是由另一个开放源码的工具完成地---- Object Graph Navigation Library,简称OGNL(关于OGNL具体可以参考http://www.ognl.org )。其内部真正的转换如下图所示:
责编:豆豆技术应用
- Java新闻
- Java入门教程
- Java开发工具
- J2EE
- J2SE
- J2ME
- EJB/Spring
- Applet/Swing
- Servlet/JSP
- Struts/Hibernate
- JDBC/JDO
- Ajax
- 认证考试
- JAVA对象比较器Comparator
- Java 6 RowSet 使用完全剖析
- 深入了解"Java"中的“异常机制”
- 讨论5种跟踪Java执行的方法
- Java专业术语标准化规范
- java中线程概念描述
- JAVA中的反射机制详解
- Java语言灵巧指针与垃圾回收
- 讲述java语言中内部类的研究
- Java对于Cookie的操作详解