以前没用struts的时候我们这样自己封装bean(超级简化版的bean数据封装)

没有用struts的时候这样做也很方便,呵呵,屡试不爽,超级简化版的bean数据封装
主要是自己写了一个这样的方法:
[code]public static void setVOFromForm(HttpServletRequest request, Object model, String n)
{
try
{
Class class1 = model.getClass();//得到相应model的vo类
Method method1[] = class1.getMethods();//得到该vo类的全部方法
for(int i = 0; i < method1.length; i++)
{
String name = method1[i].getName();//得到当前方法的名字
if(name.startsWith("set"))//是否为set开始的方法,即是否是set方法
{
Class cc[] = method1[i].getParameterTypes();//得到该方法的参数类型数组
if(cc.length == 1)//是否参数唯一
{
String type = cc[0].getName();//得到参数类型
String param = request.getParameter(name.substring(3) + n);//当n=“”时,从request钟得到名字为该方法名第4位开始的字符串的变量值,
if(param != null && !param.equals(""))//不为空或者null
if(type.equals("java.lang.String"))//判断参数类型
method1[i].invoke(model, new Object[]{param});//将得到的变量值注入vo类model的方法method1[i]
else if(type.equals("int") || type.equals("java.lang.Integer"))
method1[i].invoke(model, new Object[]{new Integer(param)});
else if(type.equals("long") || type.equals("java.lang.Long"))
method1[i].invoke(model, new Object[]{new Long(param)});
else if(type.equals("boolean") || type.equals("java.lang.Boolean"))
method1[i].invoke(model, new Object[]{Boolean.valueOf(param)});
else if(type.equals("java.sql.Date"))
{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date d = df.parse(param);
if(d != null)
method1[i].invoke(model, new Object[]{new Date(d.getTime())});
}
}
}
}

}
catch(Exception e)
{
e.printStackTrace();
}
}[/code]

用的时候这样用就可以了:

[code]RsemployeecheckVO ecvo = new RsemployeecheckVO();
DaoUtil.setVOFromForm(request, ecvo, ""); //将数据封装入ecvo中[/code]

jsp页面也和struts一样,需要变量名与bean中的变量名一致并且首字母大写:

[code]<table width="80%" border="1" align="center" bordercolor="#000000" id="tblContent">
<tr>
<td width="14%"><div align="center">单位</div></td>
<td colspan="3"><input name="Unit" value="<%=PageUtil.filterNull(tivo.getUnit())%>" type="text" size="15"></td>
<td width="14%"><div align="center">姓名</div></td>
<td ><input name="Name" type="text" value="<%=PageUtil.filterNull(tivo.getName())%>" size="10"></td>
</tr>
<tr>
<td><div align="center">工伤结案</div></td>
<td colspan="5"><textarea name="Injury_end" cols="40"><%=PageUtil.filterNull(tivo.getInjury_end())%></textarea></td>
</tr>
<tr>
<td><div align="left">事故原因分析情况</div></td>
<td colspan="5"><textarea name="AccidentAnalysis" cols="40"><%=PageUtil.filterNull(tivo.getAccidentAnalysis())%></textarea></td>
</tr>
<tr>
<td>事故责任者受教育情况</td>
<td colspan="5"><textarea name="AccidentEducation" cols="40"><%=PageUtil.filterNull(tivo.getAccidentEducation())%></textarea></td>
</tr>
<tr>
<td>单位对事故处理情况(附:现场图,调查分析会议记录,报告书,处理决定)</td>
<td colspan="5"><textarea name="AccidentDealing" cols="40" rows="5"><%=PageUtil.filterNull(tivo.getAccidentDealing())%></textarea></td>
</tr>
<tr>
<td>防范措施落实情况</td>
<td colspan="5"><textarea name="Carryingout" cols="40" rows="2"><%=PageUtil.filterNull(tivo.getCarryingout())%></textarea></td>
</tr>
</table>[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值