µÚ 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. ÊôÐÔʾÀý
ÔÚÏÂÃæµÄÀý×ÓÖÐÄ㽫¿´µ½Ò»Ð©Ê¹ÓÃ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»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúÒª×ªÔØ±¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!




