ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>98精品在线视频,午夜国产在线,国产成人av网站http://www.aygfsteel.com/wangajing/category/42756.html我的½E‹åºäººç”Ÿzh-cnMon, 23 Nov 2009 07:11:26 GMTMon, 23 Nov 2009 07:11:26 GMT60[转] java.beans.PropertyEditor(属性编辑器)½Ž€å•应ç”?http://www.aygfsteel.com/wangajing/archive/2009/11/20/303110.html˜q½æ±‚æ— æ­¢å¢?/dc:creator>˜q½æ±‚æ— æ­¢å¢?/author>Fri, 20 Nov 2009 14:07:00 GMThttp://www.aygfsteel.com/wangajing/archive/2009/11/20/303110.htmlhttp://www.aygfsteel.com/wangajing/comments/303110.htmlhttp://www.aygfsteel.com/wangajing/archive/2009/11/20/303110.html#Feedback0http://www.aygfsteel.com/wangajing/comments/commentRss/303110.htmlhttp://www.aygfsteel.com/wangajing/services/trackbacks/303110.html原文åQšhttp://www.aygfsteel.com/orangewhy/archive/2007/06/26/126371.html

java.beans.PropertyEditor的从字义来看是一个属性编辑器åQŒä½†æ€»è§‰å¾—它的作用更像一个è{换器åQï¼ä»Žå­—½W¦ä¸²è½¬æ¢ä¸ºç±»å¯¹è±¡çš„属性ã€?/p>

java.beans.PropertyEditor接口定义的方法有好几个,但是最重要ä¸ÞZ¸‹é¢ä¸¤ä¸ªï¼š(x¨¬)

 void setValue(Object value)

 void setAsText(String text) throws java.lang.IllegalArgumentException;

一般地åQŒæˆ‘们要使用PropertyEditoræ—Óž¼Œòq¶ä¸ç›´æŽ¥å®žçŽ°æ­¤æŽ¥å£ï¼Œè€Œæ˜¯é€šè¿‡¾l§æ‰¿å®žçŽ°æ­¤æŽ¥å£çš„java.beans.PropertyEditorSupport来简化我们的工作åQŒåœ¨å­ç±»è¦†ç›–setAsTextæ–ÒŽ(gu¨©)³•ž®±å¯ä»¥äº†(ji¨£n)åQŒsetValueæ–ÒŽ(gu¨©)³•一般不直接使用åQŒåœ¨setAsTextæ–ÒŽ(gu¨©)³•中将字符串进行è{æ¢åÆˆäº§ç”Ÿç›®æ ‡å¯¹è±¡ä»¥åŽåQŒç”±è°ƒsetAsText调用setValue来把目标对象注入到编辑器中。当ç„?d¨°ng)ž¼Œä½ å¯ç”¨è¦†ç›–更多的æ–Ò?gu¨©)³•来满­‘³ä½ çš„特ŒDŠè¦æ±‚。JavaBean的类和接口,被大部分spring包ä‹É用,可以从spring中学ä¹?f¨¤n)更成熟的JavaBean使用æ–ÒŽ(gu¨©)³•ã€?/p>

½Ž€å•的例子åQ?/p>

实体¾c»PersonåQ?/p>

public class Person
{
    
private String name;
    
private String sex;
    
private int age;
    
    
public Person(String name, String sex, int age)
    
{
        
this.name = name;
        
this.sex = sex;
        
this.age = age;
    }

    
    
public int getAge()
    
{
        
return age;
    }

    
public void setAge(int age)
    
{
        
this.age = age;
    }

    
public String getName()
    
{
        
return name;
    }

    
public void setName(String name)
    
{
        
this.name = name;
    }

    
public String getSex()
    
{
        
return sex;
    }

    
public void setSex(String sex)
    
{
        
this.sex = sex;
    }

    
    @Override
    
public String toString()
    
{
        
return "Person["+name+""+sex+""+age+"]";
    }

}

 

Person的属性编辑器åQ?/p>

public class PersonPropertyEditor extends PropertyEditorSupport
{
    
public void setAsText(String text)
    
{
        setValue(parseString(text));
    }


    
private Object parseString(String text)
    
{
        String[] parts 
= tokenizeToStringArray(text, ""falsefalse);
        String name 
= (parts.length > 0 ? parts[0] : "undefine");
        String sex 
= (parts.length > 1 ? parts[1] : "undefine");
        
int age = (parts.length > 2 ? Integer.valueOf(parts[2]) : 0);
        
return (text.length() > 0 ? new Person(name, sex, age) : null);
    }


    
private  String[] tokenizeToStringArray(String str, String delimiters, boolean trimTokens,
                                                    
boolean ignoreEmptyTokens)
    
{
        StringTokenizer st 
= new StringTokenizer(str, delimiters);
        List tokens 
= new ArrayList();
        
while(st.hasMoreTokens())
        
{
            String token 
= st.nextToken();
            
if(trimTokens)
            
{
                token 
= token.trim();
            }

            
if(!ignoreEmptyTokens || token.length() > 0)
            
{
                tokens.add(token);
            }

        }

        
return toStringArray(tokens);
    }


    
private  String[] toStringArray(Collection collection)
    
{
        
if(collection == null)
        
{
            
return null;
        }

        
return (String[])collection.toArray(new String[collection.size()]);
    }

}

 

‹¹‹è¯•代码åQ?/p>

    public static void main(String[] args)
    
{
        PersonPropertyEditor editor 
= new PersonPropertyEditor();
        editor.setAsText(
"aSam,man,22");
        System.out.println(editor.getValue());
    }

 

¾l“果输出åQ?/p>

Person[aSam, man, 22]


]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ̨ÍåÊ¡| ¼ÎÓø¹ØÊÐ| ®½­ÏØ| ÎÄÉ½ÏØ| ÂêÄÉË¹ÏØ| ÆîÑôÏØ| µ¤¶«ÊÐ| ÁÖÖÜÏØ| ÁºÉ½ÏØ| ÍÅ·çÏØ| µÀæÚÏØ| ÈÊ»³ÊÐ| Õû¯ÏØ| ÁÙÎ÷ÏØ| ´ó¸ÛÇø| ²×ÖÝÊÐ| ÎÂÈªÏØ| ·±ÖÅÏØ| ¹®ÁôÏØ| ²ÔÎàÏØ| Û²³ÇÏØ| ÆÕÍÓÇø| ËàÄÏ| ½ºÓÏØ| ËïÎâÏØ| ¹¢Âí| ¾¸°²ÏØ| ÄϳÇÏØ| ÄþºÓÏØ| äðºÓÊÐ| ÈéÔ´| ÓÀ´ºÏØ| ¶«Ô´ÏØ| ÔÀÆÕºþÏØ| ÃɳÇÏØ| Áú¿ÚÊÐ| ÄÚ½­ÊÐ| ½õÆÁÏØ| äµË®ÏØ| ¸ßÓÊÊÐ| Í­É½ÏØ|