后台书写过程中,每次报错都会生成一条新的id,且openo跟之前相同

  问题复现:

一是因为前台代码没有书写ID导致,jsp页面部分代码:

<form name="form1" id="form1" method="post" enctype="multipart/form-data">
<input type="hidden" id="OPENO" name="OPENO" value="<%=openo%>">
<input type="hidden" id="ID" name="ID" >

把实际id写上,然后js传参代码:

//保存
function savebcxx(){
if (!$('#form1').form('validate')) {return false;}//表单验证
var formInfo = $('#form1').serializeObject();
var addJsonStr=JSON.stringify(formInfo);
$.ajax({
url : getRootPath()+ '/wQcdzhxx/savebcxx.action',
type : 'POST',
dataType : 'TEXT',
data : {addJsonStr:addJsonStr},
success : function(result){
var data = eval("(" + result + ")");
$.messager.alert('提示',data.result);
}
});
}

 

后台代码:

@RequestMapping(value = "/savebcxx", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> savebcxx(String addJsonStr,String id) throws ParseException {
logger.info("save.");
Map<String, Object> map = new HashMap<String, Object>();
@SuppressWarnings("unchecked")
Map<String, Object> paramMap = JSONUtil.getMapFromJsonString(addJsonStr);
try {
long resulelc = wqcdzhxxService.countLc(String.valueOf(paramMap.get("OPENO")));
if (resulelc == 0) {// ==0 添加
paramMap.put("ID", id);
int lcre = wqcdzhxxService.saveMap(paramMap);
if (lcre == 1) {
map.put("result", "操作失败");
}
} else {// 修改
wqcdzhxxService.update(paramMap);
map.put("result", "修改成功");
}

} catch (Exception e) {
e.printStackTrace();
map.put("result", "操作失败");
return map;
}
return map;
}

之前在long resulelc = wqcdzhxxService.countLc(String.valueOf(paramMap.get("OPENO")));

openo书写为小写,前台openo实际已经放到后台,但是后台因为小写问题导致每次都没取到其参数,将小写改成大写,然后在在paramMap.put("ID", id);传入实际id,查出有没有实际数据,如果没有就做保存状态

posted @ 2019-07-31 10:32  蜗牛的代码之路  阅读(254)  评论(0编辑  收藏  举报