您的位置:首页 > 编程语言 > Java开发

spring mvc表单复杂类型数据绑定

2013-10-15 17:36 369 查看
spring mvc提供了和struts2差不多类似的数据绑定功能。具体如下:

首先是jsp页面:

****************************TBill*******************************<br><br>
单据编号:<input type="text" name="TBill.sbillno"> 单据类型:<input type="text" name="TBill.ibilltype"><br/><br/>
客户在仓库的编号:<input type="text" name="TBill.scustomerno"> 对方客户编号:<input type="text" name="TBill.sdistcustomerno"><br/><br/>
单据操作类型:<input type="text" name="TBill.ioperatortype"> 操作人:<input type="text" name="TBill.soperator"><br/><br/>
操作时间:<input type="text" name="TBill.doperatetime"> 备注:<input type="text" name="TBill.remark"><br/><br/>


<div id="ew12LineTemplate2">
--------------------------List<TIndentureItem>---------------------<br><br>
会员在仓库的编号:<input type="text" name="TDeliveryDo[0].list[0].scustomerno"> 会员编号:<input type="text" name="TDeliveryDo[0].list[0].smemberno">入库单号:<input type="text" name="TDeliveryDo[0].list[0].sstockno"> 卡号:<input type="text" name="TDeliveryDo[0].list[0].scardno"><br/><br/>
种类:<input type="text" name="TDeliveryDo[0].list[0].svariety"> 品名:<input type="text" name="TDeliveryDo[0].list[0].scommodityname">规格:<input type="text" name="TDeliveryDo[0].list[0].sspec"> 材质:<input type="text" name="TDeliveryDo[0].list[0].smaterial"><br/><br/>
厂家:<input type="text" name="TDeliveryDo[0].list[0].sproducer"> 执行标准:<input type="text" name="TDeliveryDo[0].list[0].sstandard">炉批号:<input type="text" name="TDeliveryDo[0].list[0].sdonkey"> 库位:<input type="text" name="TDeliveryDo[0].list[0].slocation"><br/><br/>
计量方式:<input type="text" name="TDeliveryDo[0].list[0].smeasurement"> 件数单位:<input type="text" name="TDeliveryDo[0].list[0].sunit"> 入库日期:<input type="text" name="TDeliveryDo[0].list[0].dindate"> 入库件数:<input type="text" name="TDeliveryDo[0].list[0].iinpackage"> <br/><br/>
入库重量):<input type="text" name="TDeliveryDo[0].list[0].finweight"> 出库件数:<input type="text" name="TDeliveryDo[0].list[0].ioutpackage"> 出库重量:<input type="text" name="TDeliveryDo[0].list[0].foutweight"> 当前件数:<input type="text" name="TDeliveryDo[0].list[0].ipackage"> <br/><br/>
当前重量:<input type="text" name="TDeliveryDo[0].list[0].fweight"> 锁定件数:<input type="text" name="TDeliveryDo[0].list[0].ilockpackage"> 锁定重量:<input type="text" name="TDeliveryDo[0].list[0].flockweight"> 变动件数:<input type="text" name="TDeliveryDo[0].list[0].ialertpackage"><br/><br/>
变动重量:<input type="text" name="TDeliveryDo[0].list[0].falertweight"> 锁定变动重量:<input type="text" name="TDeliveryDo[0].list[0].falertlockweight"> 锁定变动重量:<input type="text" name="TDeliveryDo[0].list[0].ialertlockpackage"><br/><br/>
锁定类型:<input type="text" name="TDeliveryDo[0].list[0].ilocktype">
</div>


************************TDelivery*******************************<br><br>
提货单编号:<input type="text" name="TDelivery.sorderno"> 货主会员名称:<input type="text" name="TDelivery.smembername"> 货主EE会员编号:<input type="text" name="TDelivery.smemberno"><br/><br/>
货主在仓库的编号:<input type="text" name="TDelivery.smemberwarehouseno"> 买方会员名称:<input type="text" name="TDelivery.sbuyermembername"> 买方EE会员编号:<input type="text" name="TDelivery.sbuyersmemberno"><br/><br/>
买方在仓库编号:<input type="text" name="TDelivery.sbuyersmemberwarehouseno"> 开单日期:<input type="text" name="TDelivery.dorderdate"> 有效期:<input type="text" name="TDelivery.dvaliddate"><br/><br/>
证件类型:<input type="text" name="TDelivery.scardtype"> 提货手机 :<input type="text" name="TDelivery.smobile"> 车牌号:<input type="text" name="TDelivery.scarno"><br/><br/>
是否要印章:<input type="text" name="TDelivery.bisstamp"> 备注:<input type="text" name="TDelivery.sremark"><br/><br/>


对应封装的javabean 如下:

public class EW010012Bean{
private TBill TBill;
private TDelivery TDelivery;

private List<TDeliveryDo> TDeliveryDo;

public TBill getTBill() {
return TBill;
}
public void setTBill(TBill tBill) {
TBill = tBill;
}

public List<TDeliveryDo> getTDeliveryDo() {
return TDeliveryDo;
}
public void setTDeliveryDo(List<TDeliveryDo> tDeliveryDo) {
TDeliveryDo = tDeliveryDo;
}

public TDelivery getTDelivery() {
return TDelivery;
}
public void setTDelivery(TDelivery tDelivery) {
TDelivery = tDelivery;
}

}


public class TBill {

private String sbillno;
private int ibilltype;
private String scustomerno;
private String sdistcustomerno;

private int ioperatortype;
private Date   duptime;//单据上传时间
private String soperator;//操作人
private Date  doperatetime;//操作时间
private String remark;
private Date dorderdate;
}


public class TDelivery {

private String sorderno;//提货单编号
private String smembername;//货主会员名称
private String smemberno;//货主会员编号
private String smemberwarehouseno;//货主会员仓库编号
private String sbuyermembername;//买方会员名称
private String sbuyersmemberno;//买方会员编号
private String sbuyersmemberwarehouseno;//买方仓库会员编号
private int ioutreasontype;//提货单类型
private Date dorderdate;//开单日期
private Date dvaliddate;//有效期
private String scardtype;//证件类型
private String smobile;//提货手机
private String scarno;//车牌号
private int bisstamp;//是否要印章
private String sremark1;//备注
private String sremark2;  //备注2
}


public class TDeliveryDo {
private String sbillno;

List<TIndentureItem> list=new ArrayList<TIndentureItem>();

/**
* @return the list
*/
public List<TIndentureItem> getList() {
return list;
}

/**
* @param list the list to set
*/
public void setList(List<TIndentureItem> list) {
this.list = list;
}

/**
* @return the sbillno
*/
public String getSbillno() {
return sbillno;
}

/**
* @param sbillno the sbillno to set
*/
public void setSbillno(String sbillno) {
this.sbillno = sbillno;
}

}


public class TIndentureItem {
private String smemberno;//会员编号
private String scustomerno;//会员在仓库的编号
private String sstockno;//入库单号
private String scardno;//卡号
private String svariety;//品种
private String scommodityname;//品名
private String sspec;//规格
private String smaterial;//材质
private String sproducer;//厂家
private String sstandard;//执行标准
private String sdonkey;//炉批号
private String slocation;//库位
private String smeasurement;//计量方式
private String sunit;	//件数单位
private Date dindate;		   //入库日期

private int iinpackage;//入库重量
private double finweight;//入库件数

private int ioutpackage;//出库重量
private double foutweight;//出库件数

private int   ipackage;//当前件数余额
private double fweight;//当前重量余额

private double flockweight;//锁定重量余额
private int   ilockpackage;//锁定件数 余额

private int   ialertpackage;//变动件数
private double falertweight;//变动重量

private double falertlockweight;//锁定变动重量
private int ialertlockpackage;//锁定变动重量

/*
*
public final static int LOCK=0;//冻结
public final static int UNLOCK=1;//解冻
public final static int NONE=10;//不修改量
*/
private int ilocktype;//锁定类型
}


上面的代码中都省略了getter 和setter。

上面是一个及其复杂的,潜逃多层的数据绑定。

在jsp中,最外层的

EW010012Bean

不用写,接着从里面的属性开始写起,list使用数据下标。自己认真看下就能理解了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息