1.新的设计方式:打断设计
在表中增加一个字段,这个字段用来存储关联表的主键集合;在报运业务中要查询合同下的货物信息。直接通过这个关联字段,利用in子查询直接去查询货物表,这样查询效率提高很多。而且数据量越大,查询效率越高。这种方式,业务关联层级越多,这种设计方式的性能体现越高。而且通过这种方式可以实现跳跃查询。
2.在jsp页面动态增加表格
##2.1动态表格:
innerHTML 实现往一个区域div增加一段html代码,
table,tr,td都用利用js动态插入
/*实现动态增加一行*/
function addTRRecord(objId, id, productNo, cnumber, grossWeight, netWeight, sizeLength, sizeWidth, sizeHeight, exPrice, tax) {
var _tmpSelect = "";
var tableObj = document.getElementById(objId); //得到表格对象
var rowLength = tableObj.rows.length; //获取行的长度
oTR = tableObj.insertRow(); //新增一行
oTD = oTR.insertCell(0); //新增单元格,下标从0开始
oTD.style.whiteSpace="nowrap";
oTD.ondragover = function(){this.className="drag_over" }; //动态加事件, 改变样式类
oTD.ondragleave = function(){this.className="drag_leave" };
oTD.onmousedown = function(){ clearTRstyle("result"); this.parentNode.style.background = '#0099cc';};
//this.style.background="#0099cc url(../images/arroww.gif) 4px 9px no-repeat";
oTD.innerHTML = " ";
oTD = oTR.insertCell(1);
oTD.innerHTML = "<input class=\"input\" type=\"checkbox\" name=\"del\" value=\""+id+"\"><input type=\"hidden\" name=\"mr_id\" value=\""+id+"\"><input class=\"input\" type=\"hidden\" id=\"mr_changed\" name=\"mr_changed\">";
oTD = oTR.insertCell(2);
oTD.innerHTML = "<input class=\"input\" type=\"text\" name=\"mr_orderNo\" readonly size=\"3\" value=\"\">";
oTD = oTR.insertCell(3);
oTD.innerHTML = "<b><font face='微软雅黑'><font color='blue'>"+productNo;+"</font></font></b> "
oTD = oTR.insertCell(4);
oTD.innerHTML = "<input type=\"text\" name=\"mr_cnumber\" maxLength=\"10\" value=\""+cnumber+"\" onBlur=\"setTRUpdateFlag(this);\" size=\"15\">";
oTD = oTR.insertCell(5);
oTD.innerHTML = "<input type=\"text\" name=\"mr_grossWeight\" maxLength=\"10\" value=\""+grossWeight+"\" onBlur=\"setTRUpdateFlag(this);\" size=\"15\">";
oTD = oTR.insertCell(6);
oTD.innerHTML = "<input type=\"text\" name=\"mr_netWeight\" maxLength=\"10\" value=\""+netWeight+"\" onBlur=\"setTRUpdateFlag(this);\" size=\"15\">";
oTD = oTR.insertCell(7);
oTD.innerHTML = "<input type=\"text\" name=\"mr_sizeLength\" maxLength=\"10\" value=\""+sizeLength+"\" onBlur=\"setTRUpdateFlag(this);\" size=\"15\">";
oTD = oTR.insertCell(8);
oTD.innerHTML = "<input type=\"text\" name=\"mr_sizeWidth\" maxLength=\"10\" value=\""+sizeWidth+"\" onBlur=\"setTRUpdateFlag(this);\" size=\"15\">";
oTD = oTR.insertCell(9);
oTD.innerHTML = "<input type=\"text\" name=\"mr_sizeHeight\" maxLength=\"10\" value=\""+sizeHeight+"\" onBlur=\"setTRUpdateFlag(this);\" size=\"15\">";
oTD = oTR.insertCell(10);
oTD.innerHTML = "<input type=\"text\" name=\"mr_exPrice\" maxLength=\"10\" value=\""+exPrice+"\" onBlur=\"setTRUpdateFlag(this);\" size=\"15\">";
oTD = oTR.insertCell(11);
oTD.innerHTML = "<input type=\"text\" name=\"mr_tax\" maxLength=\"10\" value=\""+tax+"\" onBlur=\"setTRUpdateFlag(this);\" size=\"15\">";
dragtableinit(); //拖动表格行
sortnoTR(); //排序号
}
##2.2修改新增的字段
- 页面上使用同名框,reqest.getParameterValues(),形成一个Sring数组
- Struts2框架封装为可以根据它的类型数组,改造ModelDriver
字符类型,将多个值拼接成一个字符串,之间用逗号+空格隔开
整形、浮点型、日期等,只保留第一个 - Springmvc框架封装为数组,在方法调用参数上声明
字符类型,将多个值拼接成一个字符串,之间用逗号隔开
整形、浮点型、日期等,只保留第一个