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

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

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

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

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

import java.lang.reflect.*;
public class BeanUtil2{
/**
@parameter Object obj1,Object obj2
@return Object
用到反射機制
此方法將調(diào)用obj1的getter方法,將得到的值作為相應的參數(shù)傳給obj2的setter方法
注意,obj1的getter方法和obj2方法必須是public類型
*/
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的相應的get的方法,objs1數(shù)組存放調(diào)用該方法的參數(shù),
此例中沒有參數(shù),該數(shù)組的長度為0
*/
method2[j].invoke(obj2,objs2);
//激活obj2的相應的set的方法,objs2數(shù)組存放調(diào)用該方法的參數(shù)
continue;
}
}
}
}
}
return obj2;
}
}
再建一個javabean,并測試

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í)行輸出結果

zxb

3286

成功!

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

來源:模板無憂//所屬分類:JSP教程/更新時間:2008-08-22
相關JSP教程