| Flex 2 ÄÄÆÛ³ÍÆ®ÀÇ ÀÛ¼º°ú È®Àå > ºñÁÖ¾óÇÏÁö ¾ÊÀº Flex ÄÄÆÛ³ÍÆ®ÀÇ ÀÛ¼º > custom validator ÀÇ ÀÛ¼º > custom validator ¸¦ »ç¿ëÇÑ µ¥ÀÌÅÍÀÇ °ËÁõ > ¿¹ : ´Ü¼øÇÑ validator ÀÇ ÀÛ¼º | |||
¿¹ : ´Ü¼øÇÑ validator ÀÇ ÀÛ¼º
StringValidator Ŭ·¡½º¸¦ »ç¿ëÇØ, stringÀÇ ±æÀ̰¡ ÃÖ¼ÒÄ¡º¸´Ù ±æ°Ô ÃÖ´ëÄ¡º¸´Ù ªÀº ÀÏÀ» °ËÁõÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, stringÀÇ ÄÁÅÙÃ÷´Â °ËÁõÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ ¿¹¿¡¼´Â, ź»ý³â¿¡ ±Ù°ÅÇØ ±× Àι°ÀÌ 18 ¼¼ ÀÌ»óÀÏÁö ¾î¶³Áö¸¦ ÆÇº°ÇÏ´Â ´Ü¼øÇÑ validator ¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
ÀÌ validator ´Â, ´ÙÀ½ÀÇ ¿¹¿Í °°ÀÌ, Validator ±âº» Ŭ·¡½º¸¦ È®ÀåÇÑ °ÍÀÔ´Ï´Ù.
package myValidators
{
import mx.validators.Validator;
import mx.validators.ValidationResult;
public class AgeValidator extends Validator {
// doValidation()ÀÇ ¹Ýȯ°ªÀÇ Array ¸¦ Á¤ÀÇÇÑ´Ù
private var results:Array;
// constructor¡¡ ¡¡
public function AgeValidator() {
// ±âº» class constructor¡¡ ¡¡ À» È£ÃâÇÑ´Ù
super();
}
// doValidation() ¸Þ¼Òµå¸¦ Á¤ÀÇÇÑ´Ù
override protected function doValidation(value:Object) :Array {
// °á°úÀÇ Array ¸¦ Ŭ¸®¾î ÇÑ´Ù
results = [];
// ±âº» class doValidation()¸¦ È£ÃâÇÑ´Ù
results = super.doValidation(value);
// ¿¡·¯°¡ ÀÖÀ»Áö ¾î¶³Áö¸¦ µ¹·ÁÁØ´Ù
if (results.length > 0)
return results;
// º¯¼ö¸¦ ÀÛ¼ºÇØ, ÇöÀçÀÇ ÀÏÀÚ¿¡ ÃʱâÈÇÑ´Ù
var currentYear:Date = new Date;
// ÀÔ·ÂÄ¡°¡ ¼öÄ¡ ÀÌ¿ÜÀÎÁö, °ªÀÌ ÀԷµÇÁö ¾Ê¾Ò´ø °æ¿ì´Â,
// °ËÁõ ¿¡·¯¸¦ »ý¼ºÇÑ´Ù
if (isNaN(Number(value)) || ! value)
{
results.push(new ValidationResult(true, null, "NaN",
"You must enter a year. "));
return results;
}
// °è»êÇÑ ¿¬·ÉÀÌ 18 ¼¼ ¹Ì¸¸ÀÇ °æ¿ì´Â, °ËÁõ ¿¡·¯¸¦ »ý¼ºÇÑ´Ù
if ((currentYear.getFullYear() - value) < 18) {
results.push(new ValidationResult(true, null, "tooYoung",
"You must be 18. "));
return results;
}
return results;
}
}
}
ÀÌ ¿¹¿¡¼´Â, ÃÖÃÊ·Î super() ¸¦ È£ÃâÇØ ±âº» Ŭ·¡½ºÀÇ constructor¡¡ ¡¡ À» È£ÃâÇÏ´Â public constructor¡¡ ¡¡ À» Á¤ÀÇÇÕ´Ï´Ù. validator ÀÇ required properties °¡ true ·Î ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì, ±âº» Ŭ·¡½º¿¡¼´Â, Çʼö Çʵ忡 µ¥ÀÌÅͰ¡ ÀÔ·ÂµÈ °ÍÀ» È®ÀÎÇϴ üũ¸¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
ValidationResult Ŭ·¡½ºÀÇ constructor¡¡ ¡¡ ÀÇ 2 ¹øÂ°ÀÇ ÆÄ¶ó¹ÌÅÍ´Â,null ÀÔ´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇØ, °ËÁõ ¿¡·¯°¡ µÈ ¿ÀºêÁ§Æ®ÀÇ subfield (Á¸ÀçÇÏ´Â °æ¿ì)¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÜÀÏÀÇ Çʵ带 °ËÁõÇÒ °æ¿ì¿¡´Â, ÀÌ ÆÄ¶ó¹ÌÅ͸¦ »ý·« ÇØ ±¦Âú½À´Ï´Ù. º¹¼öÀÇ Çʵ带 °ËÁõÇÏ´Â °æ¿ìÀÇ ¿¹¿¡ ´ëÇØ¼´Â,¿¹ :º¹¼öÀÇ ÇʵåÀÇ °ËÁõÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
´ÙÀ½ÀÇ ¿¹¿Í °°ÀÌ, Flex ¾îÇø®ÄÉÀ̼dz»¿¡¼ ÀÌ validator ¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
<? xml version="1. 0"? > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"xmlns:MyComp="myValidators. *"> <mx:Model id="formInfo"> <YearOfBirth>{birthYear.text}</YearOfBirth> </mx:Model><MyComp:AgeValidator id="ageV" required="true"<mx:Form > <mx:FormItem label="Enter birth year: " > <mx:TextInput id="birthYear"/> </mx:FormItem> <mx:FormItem label="Enter birth year: " > <mx:Button label="Submit"/> </mx:FormItem> </mx:Form> </mx:Application>
source="{birthYear}" property="text"/>
Ä¿½ºÅÒ validator ÀÇ package ¸í·É¹®(statement)´Â,myValidators µð·ºÅ丮³»¿¡ ±× validator ¸¦ deployÇÒ Çʿ䰡 ÀÖ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. ÀüÀÇ ¿¹¿¡¼´Â, Flex ¾îÇø®ÄÉÀ̼ÇÀ» Æ÷ÇÔÇÑ µð·ºÅ丮ÀÇ ÇÏÀ§ µð·ºÅ丮¿¡ ¹èÄ¡µË´Ï´Ù. ±× ¶§¹®¿¡, Flex ¾îÇø®ÄÉÀ̼ÇÀÇ namespace Á¤ÀÇ´Â xmlns:MyComp="myValidators. *" °¡ µË´Ï´Ù. deployÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â,ÄÄÆÛ³ÍÆ®ÀÇ ÄÄÆÄÀÏÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
