下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、使用beanutils時,date類型值為空的解決方法mons.beanuti.conversionexception: no value specifi for date 現(xiàn)在系統(tǒng)里原先不出錯的地方老是浮現(xiàn)以上這個錯誤,不知道什么緣由。也都是beanutils.copyproperties(teainfo, infofo);這種語句出的錯。 今日查了一上午,找到了它的使用,本來它是一種反射機制,用法copyproperties可以復(fù)制bean,不必重復(fù)寫無數(shù)屬性,只是效率不高。 1, beanutils.copyproperties(dest, orig); 這種copy是淺拷貝,復(fù)制后的2
2、個bean的同一個屬性可能擁有同一個對象的ref,這個在用法時要當(dāng)心,特殊是對于屬性為自定義類的狀況.還要屬性為集合類的狀況。當(dāng)心hibernate的set 2,beanutils.copyproperties與propertyutils.copyproperties的區(qū)分 這兩個類幾乎有一摸一樣的功能,唯一的區(qū)分是:beanutils在對bean賦值是會舉行類型轉(zhuǎn)化。舉例來說也就是在copyproperty時只要屬性名相同,就算類型不同,beanutils也可以舉行copy;而propertybean則可能會報錯。固然2個bean之間的同名屬性的類型必需是可以轉(zhuǎn)化的,否則用beanutils
3、一樣會報錯。 若實現(xiàn)了mons.beanutils.converter接口則可以自定義類型之間的轉(zhuǎn)化。 除beanutils外還有一個名為propertyutils的工具類,它也提供copyproperties()辦法,作用與beanutils的同名辦法非常相像,主要的區(qū)分在于后者提供類型轉(zhuǎn)換功能,即發(fā)覺兩個javabean的同名屬性為不同類型時,在支持的數(shù)據(jù)類型范圍內(nèi)舉行轉(zhuǎn)換,而前者不支持這個功能,但是速度會更快一些 http:/xiaozhao- 注重:有人說beanutils支持的轉(zhuǎn)換類型不包括java.util.date? 我用1.6.1版本試了beanutils.copyproper
4、ties,絕對是支持java.util.date的。 3,lazydynabean可以實現(xiàn)動態(tài)的vo。 這樣,有時候程序給view層的東西就可以用它來封裝而不用特地建一個多余的vo類了。 beanutils.copyproperties與propertyutils.copyproperties使用及區(qū)分 一、簡介: beanutils提供對java反射和自省api的包裝。其主要目的是利用反射機制對javabean的屬性舉行處理。我們知道,一個javabean通常包含了大量的屬性,無數(shù)狀況下,對javabean的處理導(dǎo)致大量get/代碼積累,增強了代碼長度和閱讀代碼的難度。 二、使用: bean
5、utils是這個包里比較常用的一個工具類,這里只介紹它的copyproperties()辦法。該辦法定義如下: public ic vo copyproperties(java.lang.object dest,java.lang.object orig) throws java.lang.illegalaccessexception, java.lang.reflect.invoiontargetexception 假如你有兩個具有無數(shù)相同屬性的javabean,一個很頻繁的狀況就是suts里的po對象(持久對象)和對應(yīng)的actionform,例如 teacher和teacherform。我
6、們普通會在action里從actionform構(gòu)造一個po對象,傳統(tǒng)的方式是用法類似下面的語句對屬性逐個賦值: /得到teacherform teacherform teacherform=(teacherform)form; /構(gòu)造teacher對象 teacher teacher=new teacher(); teacher.setname(teacherform.getname(); teacher.setage(teacherform.getage(); teacher.setgender(teacherform.getgender(); teacher.setmajor(teache
7、rform.getmajor(); teacher.setdepartment(teacherform.getdepartment(); /持久化teacher對象到數(shù)據(jù)庫 hibernatedao.save(teacher); 而用法beanutils后,代碼就大大改觀了,如下所示: /得到teacherform teacherform teacherform=(teacherform)form; /構(gòu)造teacher對象 teacher teacher=new teacher(); beanutils.copyproperties(teacher,teacherform); /持久化tea
8、cher對象到數(shù)據(jù)庫 hibernatedao.save(teacher); 假如teacher和teacherform間存在名稱不相同的屬性,則beanutils不對這些屬性舉行處理,需要程序員手動處理。例如 teacher包含modifydate(該屬性記錄最后修改日期,不需要用戶在界面中輸入)屬性而teacherform無此屬性,那么在上面代碼的 copyproperties()后還要加上一句: teacher.setmodifydate(new date(); 怎么樣,很便利吧!除beanutils外還有一個名為propertyutils的工具類,它也提供copyproperties(
9、)辦法,作用與 beanutils的同名辦法非常相像,主要的區(qū)分在于后者提供類型轉(zhuǎn)換功能,即發(fā)覺兩個javabean的同名屬性為不同類型時,在支持的數(shù)據(jù)類型范圍內(nèi)舉行轉(zhuǎn)換,而前者不支持這個功能,但是速度會更快一些。beanutils支持的轉(zhuǎn)換類型如下: * java.lang.bigdecimal * java.lang.biginteger * boolean and java.lang.boolean * byte and java.lang.byte * char and java.lang.character * java.lang.class * double and java.la
10、ng.double * float and java.lang.float * int and java.lang.integer * long and java.lang.long * short and java.lang.short * java.lang.string * java.sql.date * java.sql.time * java.sql.timestamp 這里要注重一點,java.util.date是不被支持的,而它的子類java.sql.date是被支持的。因此假如對象包含時光類型的屬性,且希翼被轉(zhuǎn)換的時候,一定要用法java.sql.date類型。否則在轉(zhuǎn)換時會提
11、醒argument mistype異樣。 三、優(yōu)缺點: apache jakarta commons項目十分實用。我曾在許多不同的項目上或挺直或間接地用法各種流行的commons組件。其中的一個強大的組件就是beanutils。我 將解釋如何用法beanutils將local實體bean轉(zhuǎn)換為對應(yīng)的value 對象: beanutils.copyproperties(avalue, alocal) 上面的代碼從alocal對象復(fù)制屬性到avalue對象。它相當(dāng)容易!它不管local(或?qū)?yīng)的value)對象有多少個屬性,只管舉行復(fù)制。我們假設(shè) local對象有100個屬性。上面的代碼使我們可以無需鍵入起碼100行的冗長、簡單出錯和反復(fù)的get和set辦法調(diào)用。這太棒了!太強大了!太實用 了! 現(xiàn)在,還有一個壞消息:用法beanutils的成本驚人地昂貴!我做了一個容易的測試,beanutils所花費的時光要超過取數(shù) 據(jù)、將其復(fù)制到對應(yīng)的 value對象(通過手動調(diào)用get和set辦法),以及通過串行化將其返回到遠程的客戶機的時光總和。所以要當(dāng)心用法這種威
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版年度現(xiàn)場招聘信息發(fā)布及品牌合作合同3篇
- 2025年度高端酒店客房用品采購與配送合同書2篇
- 2025年度美容美發(fā)退款協(xié)議合同(2025版)6篇
- 2025年度離婚后債務(wù)追償與財產(chǎn)保全服務(wù)合同
- 二零二五版幼兒園社區(qū)合作與資源共享合同4篇
- 2025年度產(chǎn)業(yè)園產(chǎn)業(yè)園區(qū)知識產(chǎn)權(quán)保護租賃合同4篇
- 二零二五版摩托車品牌形象設(shè)計及推廣合同4篇
- 二零二五年度土地承包經(jīng)營權(quán)信息化管理服務(wù)合同4篇
- 二零二五年度煤炭運輸合同安全風(fēng)險評估范本4篇
- 二零二五年酒類專賣店加盟店客戶投訴處理與反饋合同3篇
- 拆遷評估機構(gòu)選定方案
- 床旁超聲監(jiān)測胃殘余量
- 上海市松江區(qū)市級名校2025屆數(shù)學(xué)高一上期末達標(biāo)檢測試題含解析
- 綜合實踐活動教案三上
- 《新能源汽車電氣設(shè)備構(gòu)造與維修》項目三 新能源汽車照明與信號系統(tǒng)檢修
- 2024年新課標(biāo)《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)》測試題(附含答案)
- 醫(yī)院培訓(xùn)課件:《靜脈中等長度導(dǎo)管臨床應(yīng)用專家共識》
- 趣味知識問答100道
- 中國國際大學(xué)生創(chuàng)新大賽與“挑戰(zhàn)杯”大學(xué)生創(chuàng)業(yè)計劃競賽(第十一章)大學(xué)生創(chuàng)新創(chuàng)業(yè)教程
- 鋼管豎向承載力表
- 2024年新北師大版八年級上冊物理全冊教學(xué)課件(新版教材)
評論
0/150
提交評論