是这样的,我的页面一个form表单存在两个部分,if判断是显示修改标签还是添加标签。
提交的时候就会提交到同一个方法里。其实之前是修改区域有个input value存的是修改url路径,添加区域也有个input value存的是添加的url路径。
后来我想都提交到同一个url即同一个后台方法里。判断id是否存在来判断是要修改还是添加。
@ResponseBody()
@RequestMapping("/edit_do")
public JsonResult edit_do(Foods foods,@RequestParam("foodsImg")MultipartFile file){
JsonResult jr = new JsonResult();
try{
String path ="";
if(foods.getFoods_id()!=null){
//执行更新
//如果file为空,则表示不换图片不需要重新上传
if(file!=null){
if(!FileUtil.isAllowUpImg(file.getOriginalFilename())){
return JsonResultUtil.getErrorJson("不允许上传的文件格式,请上传gif,jpg,bmp格式文件。");
}
//上传图片,
path = upload(file,200,200);
System.out.println(path);
foods.setFoods_img(path);
}
//执行修改
foodsManager.updateFoods(foods);
}else{
//执行添加
//创建一个ID添加
Random r = new Random(1000);
String foods_id ="foods"+r.nextInt()+r.nextInt();
System.out.println(foods_id);
foods.setFoods_id(foods_id);
if(!FileUtil.isAllowUpImg(file.getOriginalFilename())){
return JsonResultUtil.getErrorJson("不允许上传的文件格式,请上传gif,jpg,bmp格式文件。");
}
//上传图片,
path = upload(file,200,200);
String updateTime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());//更新时间
foods.setFoods_img(path);
foods.setCreate_time(updateTime);
System.out.println(foods.getCreate_time());
foodsManager.insertFoods(foods);
}
} catch(RuntimeException e) {
Logger logger = Logger.getLogger(getClass());
logger.error("上传图片出错:"+e);
} catch (Exception e) {
return JsonResultUtil.getErrorJson("失败"+e.getMessage());
}
jr.setResult(1);
jr.setMessage("成功");
return jr;
}
执行添加的时候,一切ok。后来修改就总是提示不成功。也不报错,我打断点,连方法都不进。问问原因,是不是不能写一个方法里。就必须要分开写。