Tapestry学习4

验证机制:FieldLabel组件和ValidField组件
在.html文件中:
<span jwcid="@FieldLabel" field="ognl:components.userNameInput"/>
<input maxlength="20" jwcid="userName"/>
在.page文件中:
<component id="userNameInput" type="ValidField">
<binding name="value" expression="name"/>
<binding name="validator" expression="beans.userNameValidator"/>
<static-binding name="displayName" value=""/>
</component>
<bean name="userNameValidator" class="org.apache.tapestry.valid.StringValidator" lifecycle="page">
<set-property name="required" expression="true"/>
<set-property name="clientScriptingEnabled" expression="true"/>
<set-message-property name="requiredMessage" key="请输入用户名!!!"/>
</bean>
验证机制
一个TextField必须有输入内容且必须为String等一些验证,
如果希望调用Tapestry动态生成的JavaScript,那么这就需要用到验证机制。
验证机制通过FieldLabel和ValidField两个组件。
一个FieldLabel以一对一的关系搭配一个ValidField。每一个FieldLabel通过FieldLable的field参数连接到ValidField。
FieldLable从field参数中获取ValidField组件,在这里,获取了ID为userNameInput的ValidField组件:
<span jwcid="@FieldLabel" field="ognl:components.userNameInput"/>
FieldLabe组件还可以通过displayName参数以显示FieldLabel组件的名称(ValidField也有一个相同功能的参数displayName)。
FieldLabel组件的displayName参数可以不用设,但是ValidField必须设该参数,所以:
<static-binding name="displayName" value=""/>

所有validator都包含一个boolean类型的required属性。当required属性被设为true时,不允许field的输入为空。

Tapestry提供一系列的IValidator接口实现:StringValidator用来确认string输入,以及最少输入字符数目;
NumberValidator用来确认numeric输入,以及最大和最小输入值;
DateValidator用来确认Date输入。
validation delegate:验证代理,Validation的一个对象,用来跟踪form中field的错误信息,并且将错误信息分派给每一个field。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值