因为在页面中使用的是多行表格,每行代表一条数据需要写入数据库,那么在表单中的数据就需要放入数组中,每个数组代表一条数据,代码如下:
function getDate(){
var obj=$("tr[id^=id]");
var arr = new Array();
obj.each(function(i){
var temp = {};
temp['WEIGHTPROPERTY_PRIORITY']=$(this).find("input[name=WEIGHTPROPERTY_PRIORITY]").val();
$(this).find("select[class=selName]").each(
function(j){
temp['WEIGHTPROPERTY_NAME']+=$(this).find("option:selected").text()+",";
})
var len=temp['WEIGHTPROPERTY_NAME'].length;
temp['WEIGHTPROPERTY_NAME']=temp['WEIGHTPROPERTY_NAME'].substring(9,len-1);
temp['WEIGHTPROPERTY_VALUE']=$(this).find("input[name=WEIGHTPROPERTY_VALUE]").val();
temp['WEIGHTPROPERTY_SUBTRACT_VALUE']=$(this).find("input[name=WEIGHTPROPERTY_SUBTRACT_VALUE]").val();
temp['WEIGHTPROPERTY_WHETHER']=($(this).find("input[type=checkbox]").is(':checked'))?'1':'0';
arr[i] = temp;
})
return arr;
}
数据已经取到了,数据的格式可以使用console.log(data);在浏览器打印输出并查看,格式为
这是截图的链接:(https://img-blog.csdn.net/20160819114043547)
打印台输出的数据格式为:
[ObjectWEIGHTPROPERTY_NAME: "主药物"WEIGHTPROPERTY_PRIORITY: "1"WEIGHTPROPERTY_SUBTRACT_VALUE: "1"WEIGHTPROPERTY_VALUE: "1"WEIGHTPROPERTY_WHETHER: "0"__proto__: Object, ObjectWEIGHTPROPERTY_NAME: "商品名"WEIGHTPROPERTY_PRIORITY: "2"WEIGHTPROPERTY_SUBTRACT_VALUE: "2"WEIGHTPROPERTY_VALUE: "2"WEIGHTPROPERTY_WHETHER: "0"__proto__: Object]
使用JSON.stringify(data)转换成json数据格式为:
"[{"WEIGHTPROPERTY_PRIORITY":"1","WEIGHTPROPERTY_NAME":"主药物","WEIGHTPROPERTY_VALUE":"1","WEIGHTPROPERTY_SUBTRACT_VALUE":"1","WEIGHTPROPERTY_WHETHER":"0"},{"WEIGHTPROPERTY_PRIORITY":"2","WEIGHTPROPERTY_NAME":"商品名","WEIGHTPROPERTY_VALUE":"2","WEIGHTPROPERTY_SUBTRACT_VALUE":"2","WEIGHTPROPERTY_WHETHER":"0"}]"
下面就是提交数据了,我是用的是ajax提交
var data = getDate();//取数据的函数function getDate(){}
var url = "addWeightAndProperty.do";
var PRESCRIPTIONBATCH_ID ='${requestScope.PRESCRIPTIONBATCH_ID }';//批次ID
var datajson = JSON.stringify(data); //转换成json数据
$.ajax({
url:url,
type:"POST",
data:{"datajson":datajson},
success:function(e){
alert("success");
},
error:function(e){
alert("error");
}
})`
下面便是在controller层对数据的处理了
@RequestMapping("addWeightAndProperty")
@ResponseBody
public String insertWeightAndProperty(String PRESCRIPTIONBATCH_ID,HttpServletRequest request,String datajson,String WEIGHT_NAME,Integer MINIMUMWEIGHTVALUE,String ISMODIFYVAL){
String wuuid = UUID.randomUUID().toString();//权重ID
Gson gson=new Gson();
//这里使用的Gson,把json转换成集合
ArrayList<Weightproperty> weightpropertyList =gson.fromJson(
datajson, new TypeToken<List<Weightproperty>>() {}.getType());//把json数据数组转换成对象
int len = weightpropertyList.size();
for(int i=0;i<len;i++){
Weightproperty weightproperty=new Weightproperty();
weightproperty=weightpropertyList.get(i);
weightproperty.setDCREATER(getUserinfo.getUserid(request));
weightproperty.setDCREATEDTIME(new Date());
weightproperty.setWEIGHT_ID(wuuid);
String whether=weightproperty.getWEIGHTPROPERTY_WHETHER();
if(whether.equals("1")){
String uuid=UUID.randomUUID().toString();
weightproperty.setWEIGHTPROPERTY_ID(uuid);
weightpropertyService.insert(weightproperty);
weightproperty = weightpropertyList.get(i+1);
weightproperty.setWEIGHT_ID(wuuid);
weightproperty.setWEIGHTPROPERTY_POSTORDER(uuid);
weightproperty.setWEIGHTPROPERTY_ID(UUID.randomUUID().toString());
weightproperty.setDCREATER(getUserinfo.getUserid(request));
weightproperty.setDCREATEDTIME(new Date());
}else{
String uuid=UUID.randomUUID().toString();
weightproperty.setWEIGHTPROPERTY_ID(uuid);
weightpropertyService.insert(weightproperty);
}
}
try {
Weight weight=new Weight();
Integer ISMODIFY=0;//是否允许修改,0不允许 1允许
weight.setWEIGHT_NAME(WEIGHT_NAME);
weight.setMINIMUMWEIGHTVALUE(MINIMUMWEIGHTVALUE);
if(ISMODIFYVAL.equals("true")){
ISMODIFY = 1;
}
weight.setISMODIFY(ISMODIFY);
weight.setWEIGHT_ID(wuuid);
weight.setISDELETE(0);//0表示不删除,1标识逻辑删除(不显示)
weight.setDCREATEDTIME(new Date());
weight.setDCREATER(getUserinfo.getUserid(request));
weightService.insert(weight);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
RelprescriptionbatchWeight relBatchWeight=new RelprescriptionbatchWeight();
relBatchWeight.setRELPRESCRIPTIONBATCH_WEIGHT_ID(UUID.randomUUID().toString());
relBatchWeight.setPRESCRIPTIONBATCH_ID(PRESCRIPTIONBATCH_ID);
relBatchWeight.setWEIGHT_ID(wuuid);
relBatchWeight.setDCREATEDTIME(new Date());
relBatchWeight.setDCREATER(getUserinfo.getUserid(request));
relprescriptionbatchWeightService.insert(relBatchWeight);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
这是个人工作中遇到的问题与分享,不对之处恳请大家不吝赐教