Tapestry 建立自己的Translator

Tapestry 自带了3种类型的translator,包括string,date,number,可以验证客户前台的输入,并进行自动类型转换。
我们自己也可以定义自己的translator,来实现自己的具体要求。
简单举个例子。
首先建立一个translator类,继承 org.apache.tapestry.form.translator.AbstractTranslator

package org.appfuse.tapestry.translators;

import java.util.Locale;

import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
import org.apache.tapestry.form.translator.AbstractTranslator;
import org.apache.tapestry.valid.ValidatorException;

public class FullToHalfTranslator extends AbstractTranslator{

//这个方法在页面文件render的时候执行。你可以在这里调用自己的方法,来实现需要的转换。在这里JapanEncodeUtil.toHalf方法是我自己定义的一个实现全角文字转化成半角文字的方法,具体代码没必要贴出来了。

 protected String formatObject(IFormComponent arg0, Locale arg1, Object arg2) {
     String str = JapanEncodeUtil.toHalf(arg2.toString());
     return str;
 }

//这个方法在页面文件submit的时候调用。

 protected Object parseText(IFormComponent field, ValidationMessages message, String text) throws ValidatorException {
     return JapanEncodeUtil.toHalf(text);
 }

}

ok,就这么简单。接下来,在hivemodule.xml文件中添加下面定义

 <contributionconfiguration-id="tapestry.form.translator.Translators">
 <beanname="fullToHalf" class="org.appfuse.tapestry.translators.FullToHalfTranslator" />
 </contribution>


ok,下面就可以在page文件中使用了
代码片断:
 <componentid="remoteFileDir" type="TextField">
  <bindingname="value" value="backupJobSetting.remoteFileDir"/>
        <bindingname="translator" value="translator:fullToHalf"/>
        <bindingname="validators" value="validators:required"/>
        <bindingname="displayName" value="message:backupJobSetting.remoteFileDir"/>
 </component>
也可以在html文件中使用,具体不介绍了,和其他用法一样。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值