Tapestry笔记(三)

Tapestry笔记(三)

 

隐式调用组件:

<input type=”text” jwcid=”@TextField” value=”ognl:username” size=””/>

显示调用组件:

<input type=”text” jwcid=”username” size=”20”/>

<component id=”username” type=”TextField”>

       <bingding name=”value” value=”username”/>

</component>

 

Tapestry启动后,扫描HTML模版,如果jwcid标签属性的值带有@则表示隐式调用,反之则显示调用组件。可以通过ID@组件来为隐式调用自定义一个组件ID,否则则由Tapestry框架自动分配ID

 

Tapestry框架在HTML模版中发现jwcid标签属性的时候,它会根据其声明的组件去调用该组件的HTML模版、组件规范和组件类。

 

1页面属性

在页面规范中定义页面属性就相当于在页面类中定义成员变量。在页面规范中声明的属性称为页面属性,在组件规范中声明的属性称组件属性。

<property name=”basin”/>页面属性

 

要定义对应于页面属性的JavaBean抽象(getter/setter)方法:public abstract String getbasin();

在页面规范中声明的属性并不需要类型,其回根据我们定义的JavaBean抽象getter/setter方法类型来决定属性值。当然针对对应的属性值操作需求来定义gettersetter方法。

 

Tapestry框架在页面表现之前和之后两次对页面属性进行初始化。

 

<property name=”basin” initial-value=”literal:ME”>

等同于

Private String basin;

Protected void initialize()

{

This.basin=”ME”;

}

Public String getbasin()

{

Return basin;

}

 

 

2监听方法

       Tapestry属于事件触发机制。

       监听方法返回类型:

       Void:监听方法跳转到当前页面

       String:监听方法根据返回的页面名称来激活页面并表现响应,NULL跳转到当前页。

       IPage:监听方法根据返回的页面实例来激活页面对象。页面对象可以通过cycle来获取,也可以通过页面属性注入页面实例来获得,返回NULL则跳转到当前页。

       ILink:监听方法根据返回的实现ILink接口的对象对客户端URL进行重定向。

 

       监听方法的参数:

       <component id=”name” type=”DirectLink”>

              <binding name=”listener” value=”listener:fun”/>

              <binding name=”parameters” value=”{id,name}”>

       </component>

       取出DirectLink组件的parameters参数:

       IRequestCycle对象做为监听方法的参数,然后通过getListenerParameters()方法来获取一个包含数据的数组,再从中提取组件parameters参数绑定值。

       Public IPage fun(IRequestCycle cycle)

{

       Object[] parameters= cycle.getListenerParameters();

       Integer nu=(Integer)parameters[0];

       String name=(String)parameters[1];

}

或者

Public IPage fun(Integer nu,String name)

{

}

 

 

3.Visit对象和Global对象

       Visit对象:

       Visit对象是一个Tapestry应用程序的对象容器,用来存储应用程序逻辑和数据,这个对象能被应用程序中所有页面和组件共享。实际上,Visit对象最终作为一个HttpSession的属性被存储。

       Visit对象在Tapestry框架启动时通过读取应用程序规范文件,将Visit对象的配置信息存入Tapestry框架的引擎对象中。

应用程序规范:

<meta key=”org.apache.tapestry.visit-class” value=”com.ttapestry4.engine.MyVisit”>

属性注入方式:

<inject property=”” type=”” object=””>

      

       Global对象:

       Global对象是一个应用程序空间,用来存储全局性的应用程序逻辑和数据。Global对象最终作为一个ServletContext的属性被储存。

应用程序规范:

<meta key=”org.apache.tapestry.global=class” value=”com.tapestry4.engine.MyGlobal”>

 

属性注入方式:

<inject property=”” type=”” object=””>

 

Tapestry属性注入Visit对象和Global对象实例本身的生命周期是sessin还是application,意思说并非是指某个特定的对象类,而是代指两中不同的生命周期的对象。

 

 

4页面类和页面事件

       在页面规范中指定对性的java类作为页面类

       <page-specification class=”com.tapestry4.page.*”>

       ……

       </page-specification>

       或者在应用程序规范文件为所有页面类指定默认的包路径:

       <meta key=”org.apache.tapestry.page-class-packages” value=”com.tapestry4.page”/>

 

       所有组件都拥有一个隐藏的名称为page的组件属性,用以指明该组件最终被嵌入的页面,所有页面都有一个隐藏的名称为engine的页面属性,用以指明该页面正在调用的引擎对象。

 

       设置默认的页面类

       <meta key=”org.apache.tapestry.default-page-class” value=”come.tapestry4.engine.MyBasePage”>

 

       页面事件暂时不写,回头添加!

 

Component组件绑定:

<component id=”” type=””>  //id是对应的HTML模版里的jwcid,而type是官方组件

       <binding name=”” value=””/>       //包含组件的参数,及给予组件参数的value

</component>

      
查询官方的框架,可得到component的资料。

Name:参数名称

Type:参数的属性

Direction:参数相对于组件的传入传出方式.in表示我们可以通过该参数向组件传入数据,in/out代表该参数既有传入数据,又有传出数据。

Default:组件默认值

 

 

校验对象:

对输入数据进行校验是通过表单组件的两个参数进行配置,几乎所有表单组件都有这两个参数validators(提供一组校验对象)displayName(向组件提供组件名称)

<binding name=”validtors” value=”validators:required,minLength=6”>

在这里绑定了2个校验对象,即必须输入和长度至少为6

Tapestry校验对象:属性

BaseValidatormessage

Email:

Required

Max:max=110  对数字最大值进行校验

Min:min=0.1   对数字最小值进行校验

MaxLength: MaxLength=10          对字符串最大长度进行校验

MinLength:MinLength=1              对字符串最小长度进行校验

MaxDate:maxDate=06/09/2010     对格式为MM/dd/yyyy的最大日期进行校验

MinDate:mandate=06/09/2010       对格式为MM/dd/yyyy的最小日期进行校验

 

校验未完~~回头在写

 
阅读更多
个人分类: JAVA框架
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭