ÊÖ»úÕ¾
ÍøÍ¨·ÖÕ¾
µçÐÅÖ÷Õ¾
ÃÜ¡¡Âë:
Óû§Ãû£º
µ±Ç°Î»Öà : Ö÷Ò³>³ÌÐòÉè¼Æ>Java¼¼Êõ>Áбí

Spring Framework ¿ª·¢²Î¿¼ÊÖ²á Ö®ËÄ ÊôÐԱ༭Æ÷£¬Êý¾Ý°ó¶¨£¬Ð£ÑéÓëBeanWeapper(Bean·

À´Ô´£º»¥ÁªÍø ×÷Õߣºwest263.com ʱ¼ä£º2008-02-23
Î÷²¿ÊýÂë-È«¹úÐéÄâÖ÷»ú10Ç¿£¡40ÓàÏîÐéÄâÖ÷»ú¹ÜÀí¹¦ÄÜ,È«¹úÁìÏÈ!Ë«Ïß¶àÏßÐéÄâÖ÷»úÄϱ±·ÃÎʳ©Í¨ÎÞ×è!Ãâ·ÑÔùËÍÆóÒµÓʾÖ,.CNÓòÃû,×ÔÖú½¨Õ¾480ÔªÆð,Ãâ·ÑÊÔÓÃ7Ìì,ÂúÒâÔÙ¸¶¿î! P4Ö÷»ú×âÓÃ799Ôª/ÔÂ.Ô¸¶Ãâѹ½ð!

µÚ 4 Õ ÊôÐԱ༭Æ÷£¬Êý¾Ý°ó¶¨£¬Ð£ÑéÓëBeanWeapper(Bean·â×°)

4.1. ¼ò½é

ÊÇ·ñÐèÒª¶ÔÒµÎñÂß¼­½øÐÐÑéÖ¤ÊÇÒ»¸ö³£¼ûµÄÎÊÌâ¡£ ÓйØÕâÒ»µã´æÔÚÁ½ÖÖ½ØÈ»Ïë·¨µÄ»Ø´ð£¬SpringÌá³öµÄÑé֤ģʽ(ºÍÊý¾Ý°ó¶¨)¶ÔÁ½Õß¶¼²»Åų⡣ ÑéÖ¤Ó¦¸ÃÊÇ¿ÉÒÔ¶¨ÖÆ»¯µÄ²¢ÇÒÄܹ»ÒÀ¸½ÓÚÈκεÄÑéÖ¤¿ò¼Ü¶ø²»Ó¦¸Ã±»Ç¿Öưó¶¨ÔÚWeb²ã¡£ »ùÓÚÒÔÉÏÔ­Òò£¬SpringÌṩÁËÒ»¸öValidator½Ó¿Ú,Õâ¸ö½Ó¿Ú¿ÉÒÔ±»Ó¦ÓÃÓÚÓ¦ÓóÌÐòµÄÈκÎÒ»¸ö²ãÃæ (±íʾ²ã»òÕßÂß¼­²ãµÈ ÒëÕß×¢)

Êý¾Ý°ó¶¨¿ÉÒÔʹÓû§ÊäÈëÓëÓ¦ÓóÌÐòµÄÓòÄ£ÐͽøÐж¯Ì¬°ó¶¨(»òÕßÓÃÓÚ´¦ÀíÓû§ÊäÈë¶ÔÏó)¡£ Õë¶ÔÕâÒ»µãSpringÌṩÁËËùνµÄDataBinder£¨Êý¾Ý°ó¶¨£©¡£ DataBinderºÍValidator×é³ÉÁËÑéÖ¤°ü(validation),ËüÖ÷Òª±»ÓÃÓÚMVC½á¹¹£¬ ³ý´ËÖ®ÍâÒ²¿ÉÒÔ±»ÓÃÓÚÆäËûµÄµØ·½¡£

BeanWrapperÊÇSpring¼Ü¹¹µÄÒ»¸ö»ù±¾×é¼þ£¬ËüÔÚºÜ¶àµØ·½¶¼ÊǺÜÓÐÓõġ£ È»¶ø£¬Äã¿ÉÄܺÜÉÙÖ±½ÓʹÓÃBeanWrapper¡£ ÓÉÓÚÕâÊÇһƪ²Î¿¼Îĵµ£¬ËùÒÔÎÒÃǾõµÃ¶Ô´ËÉÔ×÷½âÊÍ»¹ÊÇÓбØÒªµÄ¡£ ÒòΪ½ñºóÄãÒ²Ðí½øÐжÔÏóÓëÊý¾ÝÖ®¼äµÄ°ó¶¨²Ù×÷£¬µ½Ê±¾Í»áÓõ½BeanWrapper ÁË¡£

Srping´óÁ¿µÄʹÓÃÁËPropertyEditors£¨ÊôÐԱ༭£©¡£ ËüÊôÓÚJavaBeans¹æ·¶µÄÒ»²¿·Ö¡£¾ÍÏñÎÒÃÇÉÏÃæÌáµ½µÄBeanWrapperÒ»Ñù£¬ PropertyEditorsºÍBeanWrapperÒÔ¼°DataBinderÈýÕßÖ®¼äÓÐ×ÅÃÜÇеÄÁªÏµ¡£

4.2. ʹÓÃDataBinder½øÐÐÊý¾Ý°ó¶¨

DataBinder¹¹½¨ÓÚBeanWrapperÖ®ÉÏ¡£[2].

4.3. Bean´¦ÀíÓëBeanWrapper

org.springFramework.beans°ü×ñÑ­Sun·¢²¼µÄJavaBeans±ê×¼¡£ Ò»¸öJavaBeanÊÇÒ»¸ö¼òµ¥µÄ°üº¬ÎÞ²ÎÊý¹¹Ô캯ÊýµÄÀ࣬²¢ÇÒ°üº¬seterºÍgetterÊôÐÔ·½·¨¡£ ÀýÈçpropÊôÐÔ¶ÔÓ¦setProp(...)·½·¨ºÍgetProp()·½·¨. Èç¹ûÐèÒªÁ˽âJavaBeansµÄÏêϸÐÅÏ¢¿ÉÒÔ·ÃÎÊSunµÄÍøÕ¾(java.sun.com/products/javabeans).

Õâ¸ö°üÖÐÒ»¸ö·Ç³£ÖØÒªµÄ¸ÅÄî¾ÍÊÇBeanWrapper ½Ó¿ÚÒÔ¼°ËüµÄʵÏÖ(BeanWrapperImpl)¡£ ¸ù¾ÝJavaDocÖеÄ˵Ã÷£¬BeanWrapperÌṩÁËÉèÖúͻñµÃÊôÐÔÖµµÄ¹¦ÄÜ£¨µ¥¸öµÄ»òÕßÊÇÅúÁ¿µÄ£©£¬ ¿ÉÒÔ»ñµÃÊôÐÔÃèÊö¡¢²éѯֻ¶Á»òÕß¿ÉдÊôÐÔ¡£¶øÇÒ£¬BeanWrapper»¹Ö§³ÖǶÌ×ÊôÐÔ£¬ ¿ÉÒÔ²»ÏÞÖÆÇ¶Ì×Éî¶ÈµÄ½øÐÐ×ÓÊôÐÔµÄÉèÖá£ËùÒÔ£¬BeanWrapperÖ§³Ö±ê×¼JavaBeansµÄPropertyChangeListeners ºÍVetoableChangeListeners¡£³ý´ËÖ®Í⣬BeanWrapper»¹ÌṩÁËÉèÖÃË÷ÒýÊôÐÔµÄÖ§³Ö¡£ Ò»°ãÇé¿öϲ»ÔÚÓ¦ÓóÌÐòÖÐÖ±½ÓʹÓÃBeanWrapper¶øÊÇʹÓÃDataBinderºÍBeanFactory¡£ ´ÓBeanWrapperµÄÃû×־ͿÉÒÔ¿´³ö£ºËü·â×°ÁËÒ»¸öbeanµÄÐÐΪ£¬±ÈÈçÉèÖúÍÈ¡³öÊôÐÔÖµ¡£

The way the BeanWrapper works is partly indicated by its name: it wraps a bean to perform actions on that bean, like setting and retrieving properties.

4.3.1. ÉèÖúÍÌáÈ¡ÊôÐÔÒÔ¼°Ç¶Ì×ÊôÐÔ

ÉèÖúÍÌáÈ¡ÊôÐÔ¿ÉÒÔͨ¹ýʹÓÃÖØÔØµÄsetPropertyValue(s)ºÍgetPropertyValue(s) ·½·¨À´Íê³É¡£ ÔÚSrpingµÄJavaDocÖжÔËüÃÇÓÐÏêϸµÄÃèÊö¡£ÓйØÕâÁ½¸ö·½·¨µÄһЩԼ¶¨Ï°¹ßÈçÏÂËùÁУº

±í 4.1. ÊôÐÔʾÀý

Óï·¨½âÊÍnameÖ¸³öÓë getName() »ò isName() ºÍ setName()Ïà¹ØµÄnameÐÅÏ¢ account.nameÌṩǶÌ×ÊôÐÔµÄname£¬±ÈÈç getAccount().setName() »ògetAccount().getName()·½·¨ account[2]Indicates the third element of the indexed property account. Indexed properties can be of type array, list or other naturally ordered collection

ÔÚÏÂÃæµÄÀý×ÓÖÐÄ㽫¿´µ½Ò»Ð©Ê¹ÓÃBeanWrapperÉèÖÃÊôÐÔµÄÀý×Ó¡£

×¢Ò⣺Èç¹ûÄã²»´òËãÖ±½ÓʹÓÃBeanWrapperÕⲿ·Ö²»ÊǺÜÖØÒª¡£ Èç¹ûÄã½ö½öʹÓÃDataBinder ºÍBeanFactory»òÕßËûÃǵÄÀ©Õ¹ÊµÏÖ£¬ Äã¿ÉÒÔÌø¹ýÕⲿ·ÖÖ±½ÓÔĶÁPropertyEditorsµÄ²¿·Ö¡£

¿¼ÂÇÏÂÃæµÄÁ½¸öÀà:

public class Company {

    private String name;

    private Employee managingDirector;



    public String getName()	{ 

        return this.name; 

    }

    public void setName(String name) { 

        this.name = name; 

    } 

    public Employee getManagingDirector() { 

        return this.managingDirector; 

    }

    public void setManagingDirector(Employee managingDirector) {

        this.managingDirector = managingDirector;

    }

}

ÎÄÕÂÕûÀí£ºÎ÷²¿ÊýÂë--רҵÌṩÓòÃû×¢²á¡¢ÐéÄâÖ÷»ú·þÎñ
http://www.west263.com
ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúÒª×ªÔØ±¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!