日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

如何實(shí)現(xiàn)javabean的屬性拷貝_JSP教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:JSF和Struts框架的錯(cuò)誤控制與封裝處理
在struts中,通常采用的全局錯(cuò)誤控制模式是構(gòu)建一個(gè)baseAction,在其execute方法中完成前臺(tái)傳回方法的dispatch操作,并由 try……catch……捕獲程序錯(cuò)誤,實(shí)現(xiàn)錯(cuò)誤的控制和展示。一個(gè)典型的B

在struts的實(shí)踐過(guò)程中,經(jīng)常兩個(gè)javabean交換數(shù)據(jù)的情況,如ActionForm與數(shù)據(jù)庫(kù)中的表相關(guān)的bean交換數(shù)據(jù)。通常情況下要寫(xiě)很多get和set語(yǔ)句,一個(gè)個(gè)屬性依次拷貝。這樣的話(huà),如此重復(fù)繁重的工作讓程序員感覺(jué)不到編程的快樂(lè)。于是在網(wǎng)上查相關(guān)資料知,在apache.org有一個(gè)project:common-beanutil,提供的一個(gè)BeanUtil類(lèi),這個(gè)類(lèi)有一個(gè)靜態(tài)方法BeanUtil.copyProperties()實(shí)現(xiàn)了該功能。后來(lái)我在與java相關(guān)的書(shū)上知道的java的反射機(jī)制(reflect),償試著并實(shí)現(xiàn)了兩個(gè)javabean的屬性拷貝功能。

import java.lang.reflect.*;
public class BeanUtil2{
/**
@parameter Object obj1,Object obj2
@return Object
用到反射機(jī)制
此方法將調(diào)用obj1的getter方法,將得到的值作為相應(yīng)的參數(shù)傳給obj2的setter方法
注意,obj1的getter方法和obj2方法必須是public類(lèi)型
*/
public static Object CopyBeanToBean(Object obj1,Object obj2) throws Exception{
Method[] method1=obj1.getClass().getMethods();
Method[] method2=obj2.getClass().getMethods();
String methodName1;
String methodFix1;
String methodName2;
String methodFix2;
for(int i=0;i methodName1=method1[i].getName();
methodFix1=methodName1.substring(3,methodName1.length());
if(methodName1.startsWith("get")){
for(int j=0;j methodName2=method2[j].getName();
methodFix2=methodName2.substring(3,methodName2.length());
if(methodName2.startsWith("set")){
if(methodFix2.equals(methodFix1)){
Object[] objs1=new Object[0];
Object[] objs2=new Object[1];
objs2[0]=method1[i].invoke(obj1,objs1);
/**
激活obj1的相應(yīng)的get的方法,objs1數(shù)組存放調(diào)用該方法的參數(shù),
此例中沒(méi)有參數(shù),該數(shù)組的長(zhǎng)度為0
*/
method2[j].invoke(obj2,objs2);
//激活obj2的相應(yīng)的set的方法,objs2數(shù)組存放調(diào)用該方法的參數(shù)
continue;
}
}
}
}
}
return obj2;
}
}
再建一個(gè)javabean,并測(cè)試

import java.lang.reflect.*;
public class User {
private String name;
private String id;
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setId(String id){
this.id=id;
}
public String getId(){
return this.id;
}
public static void main(String[] args) throws Exception{
User u1=new User();
u1.setName("zxb");
u1.setId("3286");
User u2=new User();
u2=(User)BeanUtil2.CopyBeanToBean(u1,u2);
System.out.println(u2.getName());
System.out.println(u2.getId());
}
}
編譯后并執(zhí)行輸出結(jié)果

zxb

3286

成功!

分享:介紹JSP中request屬性的用法
一、request.getParameter() 和request.getAttribute() 區(qū)別 (1)request.getParameter()取得是通過(guò)容器的實(shí)現(xiàn)來(lái)取得通過(guò)類(lèi)似post,get等方式傳入的數(shù)據(jù),request.setAttribute()和getAt

來(lái)源:模板無(wú)憂(yōu)//所屬分類(lèi):JSP教程/更新時(shí)間:2008-08-22
相關(guān)JSP教程