工作中遇到的问题--BindException

org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'location' on field 'code': rejected value [沪]; codes [ValidLocationCode.location.code,ValidLocationCode.code,ValidLocationCode.java.lang.String,ValidLocationCode]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [location.code,code]; arguments []; default message [code]]; default message [Location 沪 already exists]

 

原因是Controller的edit方法中参数顺序错误,BindingResult需放在location后面

@RequestMapping(value="/edit/{locationId}", method = RequestMethod.PUT)
    @PreAuthorize("hasRole('LOCATION_UPDATE')")
    public ModelAndView edit(@Valid @ModelAttribute("location") Location location, BindingResult result, @PathVariable("locationId") Long locationId, RedirectAttributes redirectAttributes) {
        if(result.hasErrors()) {
            ModelAndView modelAndView = createModelAndView("location/form", locationListMenuConfig);
            modelAndView.addObject("locationTypes", LocationType.values());
            return modelAndView;
        }
        try {
            locationService.edit(locationId, location);
            redirectAttributes.addFlashAttribute(ALERT_MESSAGE, AlertMessage.success(UPDATE_SUCCESS));    
            return backToMainPage();
        } catch(ValidationException e) {
            ModelAndView modelAndView = createModelAndView("location/form", locationListMenuConfig);
            modelAndView.addObject(ALERT_MESSAGE, AlertMessage.error(e.getErrorCode(), e.getParameters()));
            modelAndView.addObject("locationTypes", LocationType.values());
            return modelAndView;
        }
    }

转载于:https://www.cnblogs.com/ly-radiata/p/4798299.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值