| Flex 2 ÄÄÆÛ³ÍÆ®ÀÇ ÀÛ¼º°ú È®Àå > ºñÁÖ¾óÇÏÁö ¾ÊÀº Flex ÄÄÆÛ³ÍÆ®ÀÇ ÀÛ¼º > custom validator ÀÇ ÀÛ¼º > ¿¹ :º¹¼öÀÇ ÇʵåÀÇ °ËÁõ | |||
¿¹ :º¹¼öÀÇ ÇʵåÀÇ °ËÁõ
¹ß¸® µ¥ÀÌÅÍ´Â, 1 ¹ø¿¡ º¹¼öÀÇ Çʵ带 °ËÁõÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, »ç¶÷ÀÇ ¼º, À̸§, ¹Ìµé ³×ÀÓÀ» ³ªÅ¸³»´Â 3 °³ÀÇ ÀÔ·Â ÄÁÆ®·ÑÀ» °ËÁõÇϱâ À§Çؼ, NameValidator ¶ó°í ÇÏ´Â Ä¿½ºÅÒÀÇ validator ¸¦ ÀÛ¼ºÇÑ´Ù°í ÇÕ´Ï´Ù.
º¹¼öÀÇ Çʵ带 Á¶»çÇÏ´Â validator ¸¦ ÀÛ¼ºÇÏ·Á¸é , Flex DateValidator Ŭ·¡½º¿Í °°°Ô, º¹¼öÀÇ ÀÔ·Â Çʵ带 ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) validator ÀÇ properties ¸¦ Á¤ÀÇÇÏ´ÂÁö, validator ¿¡°Ô °Ç³×Áö´Â ´ÜÀÏÀÇ ¾ÆÀÌÅÛ¿¡, °ËÁõ ´ë»óÀÇ ¸ðµç Çʵ带 Æ÷ÇÔÇÕ´Ï´Ù.
´ÙÀ½ÀÇ ¿¹¿¡¼´Â,first,middle,last ÀÇ 3 °³ÀÇ Çʵ带 Æ÷ÇÔÇÑ ¾ÆÀÌÅÛÀ» °ËÁõÇÏ´Â NameValidator ¸¦ »ç¿ëÇÕ´Ï´Ù.
<? xml version="1. 0"? > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"xmlns:MyComp="myValidators. *"> <mx:Model id="person"> <name> <custName> <first>{firstInput.text}</first> <middle>{middleInput.text}</middle> <last>{lastInput.text}</last> </custName> </name> </mx:Model> <mx:TextInput id="firstInput"/> <mx:TextInput id="middleInput"/> <mx:TextInput id="lastInput"/><MyComp:NameValidator id="nameVal"<mx:Button label="Validate" click="nameVal.validate() ;"/> </mx:Application>
source="{person}" property="custName"
listener="{firstInput}"/>
ÀÌ validator ´Â, 3 °³ÀÇ ÀÔ·Â Çʵ带 Á¶»çÇÕ´Ï´Ù. firstInput ¸¦ °ËÁõ Listener·Î¼ ÁöÁ¤ÇÕ´Ï´Ù. µû¶ó¼, °ËÁõ ¿¡·¯°¡ ¹ß»ýÇϸé, Flex ´Â ÃÖÃÊÀÇ TextInput ÄÁÆ®·Ñ¿¡ °ËÁõ ¿¡·¯ ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÕ´Ï´Ù.
´ÙÀ½ÀÇ ¿¹¿Í °°ÀÌ, NameValidator Ŭ·¡½º¸¦ ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.
package myValidators
{
import mx.validators.Validator;
import mx.validators.ValidationResult;
public class NameValidator extends Validator {
// doValidation()ÀÇ ¹Ýȯ°ªÀÇ Array ¸¦ Á¤ÀÇÇÑ´Ù
private var results:Array;
public function NameValidator () {
super();
}
override protected function doValidation(value:Object) :Array {
var fName:String = value.first;
var mName:String = value.middle;
var lName:String = value.last;
// °á°úÀÇ Array ¸¦ Ŭ¸®¾î ÇÑ´Ù
results = [];
// ±âº» class doValidation()¸¦ È£ÃâÇÑ´Ù
results = super.doValidation(value);
// ¿¡·¯°¡ ÀÖÀ»Áö ¾î¶³Áö¸¦ µ¹·ÁÁØ´Ù
if (results.length > 0)
return results;
// À̸§ÀÇ Çʵ带 üũÇÑ´Ù
if (fName == "" || fName == null) {
results.push(new ValidationResult(true, "first", "noFirstName",
"No First Name. "));
return results;
}
// ¹Ìµé ³×ÀÓÀÇ Çʵ带 üũÇÑ´Ù
if (mName == "" || mName == null) {
results.push(new ValidationResult(true, "middle", "noMiddleName",
"No Middle Name. "));
return results;
}
// ¼ºÀÇ Çʵ带 üũÇÑ´Ù
if (lName == "" || lName == null) {
results.push(new ValidationResult(true, "last", "noLastName",
"No Last Name. "));
return results;
}
return results;
}
}
}
ÀÌ ¿¹¿¡¼´Â, ´ÜÀÏÀÇ validator ¸¦ »ç¿ëÇØ, validator ¿¡°Ô °Ç³×Áø Object ÀÇ 3 °³ÀÇ Çʵ带 °ËÁõÇϱâ À§ÇØ(¶§¹®¿¡),ValidationResult Ŭ·¡½ºÀÇ constructor¡¡ ¡¡ ¿¡ ¿É¼ÇÀÇ 2 ¹øÂ°ÀÇ ÆÄ¶ó¹ÌÅ͸¦ Æ÷ÇÔÇØ, °ËÁõ ¿¡·¯ÀÇ ¿øÀÎÀÌ µÈ subfield¸¦ ÁöÁ¤ÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, Flex ´Â ¿¡·¯ÀÇ ¿øÀÎÀÌ µÈ ÀÔ·Â ÄÄÆÛ³ÍÆ®¸¦ ½Äº°ÇØ, ¾îÇø®ÄÉÀ̼dz»¿¡¼ ±× ÄÄÆÛ³ÍÆ®¸¦ ÇÏÀ̶óÀÌÆ® Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
doValidation() ¸Þ¼Òµå´Â, ÃÖÃÊÀÇ °ËÁõ ¿¡·¯¸¦ °ËÃâÇÏÀÚ, °ð¹Ù·Î °ËÁõ ¿¡·¯¸¦ µ¹·ÁÁÝ´Ï´Ù. À̰ÍÀº, ´ÙÀ½ÀÇ ¿¹¿Í °°ÀÌ, ¸ðµç ÀÔ·Â Çʵ带 Á¶»çÇÏ°í ³ª¼ ¿¡·¯ ¸Þ¼¼Áö¸¦ µ¹·ÁÁÖµµ·Ï(µíÀÌ) doValidation() ¸¦ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.
override protected function doValidation(value:Object) :Array {
var fName:String = value.first;
var mName:String = value.middle;
var lName:String = value.last;
// °á°úÀÇ Array ¸¦ Ŭ¸®¾î ÇÑ´Ù
results = [];
// ±âº» class doValidation()¸¦ È£ÃâÇÑ´Ù
results = super.doValidation(value);
// ¿¡·¯°¡ ÀÖÀ»Áö ¾î¶³Áö¸¦ µ¹·ÁÁØ´Ù
if (results.length > 0)
return results;
// À̸§ÀÇ Çʵ带 üũÇÑ´Ù
if (fName == "" || fName == null) {
results.push(new ValidationResult(true, "first", "noFirstName",
"No First Name. "));
}
// ¹Ìµé ³×ÀÓÀÇ Çʵ带 üũÇÑ´Ù
if (mName == "" || mName == null) {
results.push(new ValidationResult(true, "middle", "noMiddleName",
"No Middle Name. "));
}
// ¼ºÀÇ Çʵ带 üũÇÑ´Ù
if (lName == "" || lName == null) {
results.push(new ValidationResult(true, "last", "noLastName",
"No Last Name. "));
}
return results;
}
¸Þ¼Òµå³»ÀÇ return ¸í·É¹®(statement)°¡ 1 ÇุÀ¸·Î µÇµµ·Ï(µíÀÌ),if ¸í·É¹®(statement)ÀÇ º»Ã¼·ÎºÎÅÍ return ¸í·É¹®(statement)¸¦ »èÁ¦ÇÕ´Ï´Ù. ÀÌ º¯°æ¿¡ ÀÇÇØ, 1 ¹ø¿¡ 3 °³°¡ ´Ù¸¥ °ËÁõ ¿¡·¯¸¦ °ËÃâÇÒ ¼ö ÀÖ½À´Ï´Ù.
