今天在JDF下面封装struts2。
由于JDF的bean 和 struts的action 不是一个东西,当然可以做在一起,但是做在一起会有耦合的问题,而且灵活性大大降低,所以就写了个简单的对象赋值的方法。
假设一个UserBean是和表映射的
有一个UserAction 是和JSP表单映射的。
这里的字段变量名字都是一样,那么我们可以写一个公用的方法,用于转换两个对象的值的对应。
代码如下,Wrap类
public class ObjectTransWrap { public static Object wrap(Object actionObj,Class OperatorAction) throws Exception, InstantiationException{ Object o = OperatorAction.newInstance(); BeanInfo beanInfo = Introspector.getBeanInfo(actionObj.getClass()); PropertyDescriptor[] properties = beanInfo.getPropertyDescriptors(); Method get = null; Method set = null; for (int i = 0; i < properties.length; i++) { try{ get = properties[i].getReadMethod(); set = o.getClass().getMethod( properties[i].getWriteMethod().getName(), new Class[]{properties[i].getPropertyType()}); }catch(Throwable a){ continue; } if(set!=null&&get!=null){ set.invoke(o, new Object[]{get.invoke(actionObj, new Object[]{})}); set = null; get = null; } } return o; }
下面我们新建两个Bean。
UserBean.java
public class UserBean{ private String name = ""; private long age = -1; public long getAge(){ return age; } public String getName(){ return name; } public void setAge( long age ){ this.age = age; } public void setName( String name ){ this.name = name; } }
UserAction.java
public class UserAction{ private String name = ""; private long age = -1; public long getAge(){ return age; } public String getName(){ return name; } public void setAge( long age ){ this.age = age; } public void setName( String name ){ this.name = name; } }
main函数
public static void main(String[] args) throws InstantiationException, Exception{ UserAction a = new UserAction(); a.setName("名字"); a.setAge(22); UserBean bean = (UserBean)wrap(a,UserBean.class); System.out.println("name="+bean.getName()); System.out.println("age="+bean.getAge()); }
输出结果是:
name=名字age=22
两个bean的值复制成功。但是我感觉我写的上面的代码是在重复的造轮子。JDK里面貌似有这样的方法
作者keyboardsun ,转载请标明出处
您还没有登录,请您登录后再发表评论
【Flutter】Dart 面向对象 ( get 方法 | set 方法 | 静态方法 ) https://hanshuliang.blog.csdn.net/article/details/113883540 博客源码快照
java的文件操作DAO,能够处理大部分常见的文件操作,非常适合开发时候使用。
前端开源库-filed-mimefix归档的mimefix,简化的文件库。
往往从后台得到Json数据,其中包含时间数据时往往为时间戳格式 ,直接将时间戳格式的数据显示到VIew上是很不友好的(如下图),所以我们需要将时间戳数据格式进行转化。 在Layui中使用数据表格是通过cols中的filed...
亿邮邮件服务器双机冷备mysql_filed复制.docx
描述:调用set方法,修改对象属性,被修改的对象属性是一个可变的对象; May expose internal representation by returning reference to mutable object 描述:调用get方法,获得对象属性,获得的对象属性是一个可...
javacard applet 开发实例 正常运行 带jar包 package mifare; import com.ibm.jz.JZSystem; import javacard.framework.APDU; import javacard.framework.Applet; import javacard.framework.ISO7816; import ...
Java库,用于复制和同步文件夹 用法 File copyFrom = new File ( " path/to/source/folder " ); File copyTo = new File ( " path/to/destination/folder " ); // Copy new files, remove deleted ...
e.setCell(filed.ordinal(), filed.getName()); } for (int i = 1; i; i++){ e.createRow(i); e.setCell(0, i); e.setCell(1, "工商银行"); e.setCell(2, new Date()); // e.setCell(3, 19999...
MTK线刷常见错误信息汇总和解决办法
此方法主要是获得Layui当前行数据的上一行数据,或者下一行数据,os旧的jquery选择器 se选择器 nse新的jquery选择器 /** * * @param obj layui-table的行数据对象 * @param number 要查找的行距离当前行距离,以...
轻松获取,设置JavaScript对象中字段的存根值。 为什么? 我厌倦了这样做: var port = cfg && cfg . env && cfg . env . prod && cfg . env . prod . port 现在... var field = require ( 'field' ) var port...
filed_assignment 由提起的赋值api
Filed成员变量,成员变量的名字和成员变量的数据类型[如果是引用数据类型,也是完整的包名.类名] Method成员方法,方法权限修饰符,返回值类型,类名,形式参数列表 总结 .class字节码文件中,包含了Java文件的所有...
how to make a complex filed group jasper
东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文和在...
华为项目管理新增笔试及面试,整理了近期的笔试考试题目经相关答案分享给大家。
python abaqus 保存每一帧的场输出为一个文件,只输出的mises值,如果需要保存其他值改动输出就可以了
一般的dbf文件都是数据库操作文件,用c语言进行操作的dll很多,但是java操作的很少,我找到了一个javadbf-0[1].4.0.jar的包,但是操作效果很不理想,尤其是末尾空格和乱码问题,于是我在这个jar包的基础上进行进一步...
相关推荐
【Flutter】Dart 面向对象 ( get 方法 | set 方法 | 静态方法 ) https://hanshuliang.blog.csdn.net/article/details/113883540 博客源码快照
java的文件操作DAO,能够处理大部分常见的文件操作,非常适合开发时候使用。
前端开源库-filed-mimefix归档的mimefix,简化的文件库。
往往从后台得到Json数据,其中包含时间数据时往往为时间戳格式 ,直接将时间戳格式的数据显示到VIew上是很不友好的(如下图),所以我们需要将时间戳数据格式进行转化。 在Layui中使用数据表格是通过cols中的filed...
亿邮邮件服务器双机冷备mysql_filed复制.docx
描述:调用set方法,修改对象属性,被修改的对象属性是一个可变的对象; May expose internal representation by returning reference to mutable object 描述:调用get方法,获得对象属性,获得的对象属性是一个可...
javacard applet 开发实例 正常运行 带jar包 package mifare; import com.ibm.jz.JZSystem; import javacard.framework.APDU; import javacard.framework.Applet; import javacard.framework.ISO7816; import ...
Java库,用于复制和同步文件夹 用法 File copyFrom = new File ( " path/to/source/folder " ); File copyTo = new File ( " path/to/destination/folder " ); // Copy new files, remove deleted ...
e.setCell(filed.ordinal(), filed.getName()); } for (int i = 1; i; i++){ e.createRow(i); e.setCell(0, i); e.setCell(1, "工商银行"); e.setCell(2, new Date()); // e.setCell(3, 19999...
MTK线刷常见错误信息汇总和解决办法
此方法主要是获得Layui当前行数据的上一行数据,或者下一行数据,os旧的jquery选择器 se选择器 nse新的jquery选择器 /** * * @param obj layui-table的行数据对象 * @param number 要查找的行距离当前行距离,以...
轻松获取,设置JavaScript对象中字段的存根值。 为什么? 我厌倦了这样做: var port = cfg && cfg . env && cfg . env . prod && cfg . env . prod . port 现在... var field = require ( 'field' ) var port...
filed_assignment 由提起的赋值api
Filed成员变量,成员变量的名字和成员变量的数据类型[如果是引用数据类型,也是完整的包名.类名] Method成员方法,方法权限修饰符,返回值类型,类名,形式参数列表 总结 .class字节码文件中,包含了Java文件的所有...
how to make a complex filed group jasper
东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文和在...
华为项目管理新增笔试及面试,整理了近期的笔试考试题目经相关答案分享给大家。
python abaqus 保存每一帧的场输出为一个文件,只输出的mises值,如果需要保存其他值改动输出就可以了
一般的dbf文件都是数据库操作文件,用c语言进行操作的dll很多,但是java操作的很少,我找到了一个javadbf-0[1].4.0.jar的包,但是操作效果很不理想,尤其是末尾空格和乱码问题,于是我在这个jar包的基础上进行进一步...