锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
1. 寤虹珛Validator緇ф壙BaseValidator綾?br />鎴戝疄鐜板緱鏄獙璇佺敤鎴瘋緭鍏ュ繀欏誨拰鎸囧畾瀛楁涓鑷淬?br />濡傛灉鎯寵甯﹀弬鏁板緱楠岃瘉錛岃娣誨姞涓涓甫String鍙傛暟寰楁瀯閫犳柟娉曪紝騫跺疄鐜皊etter錛実etter鏂規(guī)硶
渚嬪validator楠岃瘉璋冪敤鍚嶄負(fù) name錛屽垯瀹炵幇setName,getName鏂規(guī)硶銆?br />浠g爜錛?
package org.appfuse.webapp.tapestry;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
import org.apache.tapestry.form.validator.BaseValidator;
import org.apache.tapestry.valid.ValidatorException;
public class MyValidater extends BaseValidator {
//鐢ㄦ埛寰楄緭鍏ュ唴瀹?br />聽private String name;
聽/**
聽 * @return the name
聽 */
聽public String getName() {
聽聽return name;
聽}
聽/**
聽 * @param name
聽 *聽聽聽聽聽聽聽聽聽聽聽 the name to set
聽 */
聽public void setName(String name) {
聽聽this.name = name;
聽}
聽public MyValidater() {
聽}
聽public MyValidater(String string) {
聽聽super(string);
聽}
//瀹炵幇楠岃瘉鏂規(guī)硶
聽public void validate(IFormComponent field, ValidationMessages messages,
聽聽聽Object object) throws ValidatorException {
聽聽String str = object.toString();
聽聽if (!str.equals(name))
聽聽聽throw new ValidatorException(messages.formatValidationMessage(
聽聽聽聽聽getMessage(), "invalid-format", new Object[] {
聽聽聽聽聽聽聽field.getDisplayName(), null }));
聽}
}
2.ok錛屼慨鏀筯ivemodule.xml 鏂囦歡錛屾坊鍔犱互涓嬩唬鐮?br />
聽聽聽 <contribution configuration-id="tapestry.form.validator.Validators">
聽聽聽聽聽聽 <validator name="name" configurable="true" class="org.appfuse.webapp.tapestry.MyValidater"/>
聽聽 </contribution>
娉ㄦ剰錛氬鏋滀綘鐨剉alidator涓嶅甫鍙傛暟錛岃璁劇疆configurable=false
聽聽聽 <component id="usernameField" type="TextField">
聽聽聽聽聽聽聽 <binding name="value" value="user.username"/>
聽聽聽聽聽聽聽 <binding name="validators" value="validators:required,name=airdream"/>
聽聽聽聽聽聽聽 <binding name="displayName" value="message:user.username"/>
聽聽聽 </component>
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{
//榪欎釜鏂規(guī)硶鍦ㄩ〉闈㈡枃浠秗ender鐨勬椂鍊欐墽琛屻備綘鍙互鍦ㄨ繖閲岃皟鐢ㄨ嚜宸辯殑鏂規(guī)硶錛屾潵瀹炵幇闇瑕佺殑杞崲銆傚湪榪欓噷JapanEncodeUtil.toHalf鏂規(guī)硶鏄垜鑷繁瀹氫箟鐨勪竴涓疄鐜板叏瑙掓枃瀛楄漿鍖栨垚鍗婅鏂囧瓧鐨勬柟娉曪紝鍏蜂綋浠g爜娌″繀瑕佽創(chuàng)鍑烘潵浜?jiǎn)銆?br />
聽protected String formatObject(IFormComponent arg0, Locale arg1, Object arg2) {
聽聽聽聽聽String str = JapanEncodeUtil.toHalf(arg2.toString());
聽聽聽聽聽return str;
聽}
//榪欎釜鏂規(guī)硶鍦ㄩ〉闈㈡枃浠秙ubmit鐨勬椂鍊欒皟鐢ㄣ?
聽protected Object parseText(IFormComponent field, ValidationMessages message, String text) throws ValidatorException {
聽聽聽聽聽return JapanEncodeUtil.toHalf(text);
聽}
}
聽<contributionconfiguration-id="tapestry.form.translator.Translators">
聽<beanname="fullToHalf" class="org.appfuse.tapestry.translators.FullToHalfTranslator" />
聽</contribution>