<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    冰浪

    哥已不再年輕 - 堅(jiān)定夢(mèng)想,畢生追求!
    posts - 85, comments - 90, trackbacks - 0, articles - 3
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    這些日子在用JSF+Hibernate組合來(lái)實(shí)現(xiàn)一簡(jiǎn)單應(yīng)用——留言本。

    ???????? 思路如下:
    ???????? 用JSF作為View層,Hibernate實(shí)現(xiàn) Model層即數(shù)據(jù)持久化,而Control層則采用POJO,即JavaBean。

    ???????? 在model層,用hibernate生成持久化對(duì)象,作為與數(shù)據(jù)庫(kù)間數(shù)據(jù)交互的“介質(zhì)對(duì)象”(自己命名的,呵呵)。如留言信息類Message.class,這也是POJO,即實(shí)體bean,所含方法只是setter/getter。但其卻與DB表中數(shù)據(jù)類型相對(duì)應(yīng)的。

    ???????? 在view層JSF中,與頁(yè)面顯示組件進(jìn)行值綁定的受控bean承擔(dān)了數(shù)據(jù)顯示與操作的任務(wù)。在此應(yīng)用中,如MessageBean.class,這是與hibernate中的Message.class這一實(shí)體bean相對(duì)應(yīng)的。

    ???????? 為什么不直接使用實(shí)體bean作為view層的數(shù)據(jù)顯示對(duì)象呢?這是因?yàn)樵贛VC模式中,任何兩層間都應(yīng)該是“松藕合”狀態(tài),而不產(chǎn)生相互依賴的情形。

    ???????? 既然如此,受控bean與實(shí)體bean之間又如何實(shí)現(xiàn)數(shù)據(jù)的傳遞呢?

    ???????? 在control層中,建立一個(gè)MessageBuilder.class類,來(lái)實(shí)現(xiàn)兩bean間的交互,這個(gè)類中主要利用了org.apache.commons.beanutils.BeanUtils類的copyProperties方法來(lái)實(shí)現(xiàn)。MessageBuilder.java的具體實(shí)現(xiàn)代碼如下:

    //**********MessageBuilder.java的具體實(shí)現(xiàn)代碼begin**************
    package efan5.myguestbook.control;

    import java.lang.reflect.InvocationTargetException;
    import org.apache.commons.beanutils.BeanUtils;

    import efan5.myguestbook.model.Message;
    import efan5.myguestbook.view.MessageBean;

    public class MessageBuilder {
    ?
    ?public MessageBuilder(){}
    ?
    ?public static Message createMessage(MessageBean messageBean){
    ??Message message = new Message();
    ??try {
    ???BeanUtils.copyProperties(message, messageBean);
    ??} catch (IllegalAccessException e) {
    ???
    ???e.printStackTrace();
    ??} catch (InvocationTargetException e) {
    ??????e.printStackTrace();
    ??}
    ??return message;
    ?}
    ?
    ?public static MessageBean createMessageBean(Message message){
    ??MessageBean messageBean = new MessageBean();
    ??try {
    ???BeanUtils.copyProperties(messageBean,message);
    ??} catch (IllegalAccessException e) {
    ???
    ???e.printStackTrace();
    ??} catch (InvocationTargetException e) {
    ??????e.printStackTrace();
    ??}
    ??return? messageBean;
    ?}

    }
    //**********MessageBuilder.java的具體實(shí)現(xiàn)代碼end**************

    ???????? 這就實(shí)現(xiàn)了受控bean與實(shí)體bean的數(shù)據(jù)交互。
    ???????? PS:BeanUtils.copyProperties(obj1,obj2) 方法要對(duì)象obj1,obj2中的相對(duì)應(yīng)的屬性的名字和數(shù)據(jù)類型一致,否則會(huì)產(chǎn)生數(shù)據(jù)類型不匹配的異常。但并不是要求屬性數(shù)目一致。


    評(píng)論

    # re: 受控bean與實(shí)體bean的數(shù)據(jù)傳遞  回復(fù)  更多評(píng)論   

    2006-09-25 14:53 by 123bingbing
    如果你是編程高手,這里將是你一個(gè)展現(xiàn)自我的新舞臺(tái)----www.mylinux.com.cn

    # re: 受控bean與實(shí)體bean的數(shù)據(jù)傳遞  回復(fù)  更多評(píng)論   

    2006-09-27 06:08 by 祎恬凡
    PropertyUtils.copyProperties:Copy property values from the "origin" bean to the "destination" bean for all cases where the property names are the same (even though the actual getter and setter methods might have been customized via BeanInfo classes).

    這說(shuō)明該方法可以拷貝bean中只要命名相同的屬性值,而不要求類型是否一致。當(dāng)然了,類型不同的時(shí)候,他會(huì)自己去轉(zhuǎn)換,當(dāng)轉(zhuǎn)換不過(guò)來(lái)的時(shí)候就會(huì)發(fā)生那個(gè)classcastexception了。

    # re: 受控bean與實(shí)體bean的數(shù)據(jù)傳遞  回復(fù)  更多評(píng)論   

    2006-09-27 06:08 by 祎恬凡
    PropertyUtils.copyProperties:Copy property values from the "origin" bean to the "destination" bean for all cases where the property names are the same (even though the actual getter and setter methods might have been customized via BeanInfo classes).
    這說(shuō)明該方法可以拷貝bean中只要命名相同的屬性值,而不要求類型是否一致。當(dāng)然了,類型不同的時(shí)候,他會(huì)自己去轉(zhuǎn)換,當(dāng)轉(zhuǎn)換不過(guò)來(lái)的時(shí)候就會(huì)發(fā)生那個(gè)classcastexception了。

    # re: 受控bean與實(shí)體bean的數(shù)據(jù)傳遞  回復(fù)  更多評(píng)論   

    2006-09-29 16:31 by 冰川
    支持下,呵呵!
    主站蜘蛛池模板: 中国亚洲呦女专区| 国产成人毛片亚洲精品| 亚洲AV成人片色在线观看高潮| ssswww日本免费网站片| 免费一级毛片不卡不收费| 亚洲精品无码久久久久APP| 国产情侣激情在线视频免费看| 亚洲明星合成图综合区在线| 免费在线观看h片| 33333在线亚洲| 在线看片无码永久免费aⅴ| 国产亚洲精品免费| 久久亚洲2019中文字幕| 国产黄色免费观看| 亚洲AV无码国产精品麻豆天美| 免费播放一区二区三区| 亚洲综合图片小说区热久久| 99久久99这里只有免费费精品| 在线亚洲高清揄拍自拍一品区| 精品国产一区二区三区免费看| 亚洲乱码日产精品一二三| 四虎影视免费永久在线观看| 国产区在线免费观看| 亚洲AV无码久久精品色欲| 久草视频在线免费| 亚洲AV第一成肉网| 久久久久国产亚洲AV麻豆| 久久国产精品免费观看| 亚洲男人天堂2022| 国产一级高清免费观看| 人妻免费一区二区三区最新| 亚洲人成在线免费观看| 免费jjzz在线播放国产| 国产精品免费观看调教网| 精品久久久久久亚洲精品| www.亚洲精品| 最近2019中文字幕免费直播| 亚洲欧美日本韩国| 亚洲VA中文字幕不卡无码| 午夜高清免费在线观看| 成人影片一区免费观看|