[关闭]
@kevinZheng 2015-07-20T12:59:01.000000Z 字数 2000 阅读 3089

Tapestry5.3 学习笔记

tapestry5.3 笔记 学习


好记性不如烂笔头。方便以后学而时习之。

1 模版中组件的使用

有三种方式:
1. Explicitly in the template.(在页面模板中直接定义)
格式:<t:textfield t:value="message"/>
定义一个textfield 的Tapestry组件,绑定message属性。
2. Invisibly in the template. (在页面模板中隐藏定义)
格式:<input type="text" t:type="textfield" t:value="message"/>
把Tapestry组件Textfield绑定到HTML组件Input中。
3. In the page class (在页面类中定义Tapestry组件)
格式:(页面类定义)

  1. @Component ( parameters = {"value=message"})
  2. private TextField theTextBox;

(页面模板引用)<input type="text" t:id="theTextBox"/>
在页面类中定义Tapestry组件类型、属性,在模板中引用定义的组件。
总结:最好用第三种形式,尽量保持模版的纯净

2 页面之间值传递

2.1 常用两种方式:

  1. 利用Session(会话)来保持传递参数的持久化。关键点就是@Persist注解
    页面后台 java 代码格式:
  1. @InjectPage
  2. private About about;
  3. @Component
  4. private ActionLink aboutAction;
  5. //ActionLink的后台事件处理,后台传递参数
  6. Object onActionFromAboutAction(){
  7. about.setUp(message);
  8. return about;
  9. }

tml 模版代码格式:

  1. <a t:id="aboutAction">turn to about page and show message!</a>

about 页面后台java 代码:

  1. //自动session持久化变量
  2. @Persist
  3. private String message;
  4. //从别的页面传递参数入口方法
  5. public void setUp(String message){
  6. this.message=message;
  7. }
  1. 通过URL向另一个页面传递参数。关键是onActivateonPassivate方法。
    页面后台 java 代码格式:
  1. @Component ( parameters = {"page=about","context=message"})
  2. private PageLink aboutPage;

前台模版:

  1. <a t:id="aboutPage" >about page</a>

about 页面后台java 代码:

  1. //框架自动调用下面方法,通过url完成参数传递
  2. void onActivate(String message) {
  3. this.message = message;
  4. }
  5. String onPassivate(){
  6. return message;
  7. }

2.2 URL传多个参数的情况:

页面后台java 代码:

  1. @Property
  2. private String[] param={"123","234"};
  3. @Component(parameters={"page=about","context=param"})
  4. private PageLink aboutPage;

前台模版:<a t:id="aboutPage">about page</a>
about 页面java 代码:

  1. import org.apache.tapestry5.annotations.Property;
  2. public class About {
  3. @Property
  4. private String name;
  5. @Property
  6. private String message;
  7. //参数顺序要跟传递进来的params数组顺序一致
  8. void onActivate(String name, String message) {
  9. this.name = name;
  10. this.message = message;
  11. }
  12. String[] onPassivate() {
  13. return params;
  14. }
  15. //这个数组来存、取多个参数,List也可以实现同样功能。列表或者数组匿名也可以。
  16. private String[] params;
  17. public void setParams(String[] params) {
  18. this.params = params;
  19. }
  20. public String[] getParams() {
  21. return params;
  22. }
  23. }

3 核心组件介绍

4 自定义组件开发

5 Spring、Hibernate集成

6 项目基本框架

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注