Tapestry入门问题集(一) [转]

1 方法PageBeginRender(PageEvent event)没有被执行
 

  出现此
问题
的原因常见的有两种:一是页面类没有implements PageRenderListener,二是在page文件中指定页面类不正确
 


2 自定义组件
问题
 

  组件类必须继承BaseComponent或AbstractComponent类或其子类,需要用到模板(html)的组件需继承BaseComponent类,不需要用的则继承AbstractComponent类.
 


3.page与html分离方法:
 

  把.page的定义加入到.application文件中
 

<page name="AAA" specification-path="/page/AAA.page"/>
 

然后在.page文件中要添加<context-asset name="$template" path="template/AAA.html"/>
 


4.启动Web服务器时加启动参数,则修改html和page文件不需要重新启动,如果用MyEclipse,在eclipse-->Preferences-->myEclipse-->Tomcat5-->JDK中设置 :
 

-Dorg.apache.tapestry.enable-reset-service=true
 

-Dorg.apache.tapestry.disable-caching=true
 


5.JSP可以通过request.getParameter()来获取,那么Tapestry通过什么方法来获取呢,目前发现两种办法:
 


1). String nodeIdStr = this.getRequestCycle().getRequestContext()
 

     .getRequest().getParameter("你想获取的参数名");
 


2).Object[] parameters = cycle.getServiceParameters(); 然后在parameters 取参数,比如第一个参数是整数
 


int page = ((Integer) parameters[0]).intValue();这种方法复杂一些

你可能感兴趣的:([转])