在Spring MVC中,當我們向前端返回數(shù)據(jù)時,一般是以JSON格式進行返回的。如果在數(shù)據(jù)綁定過程中發(fā)生錯誤,我們需要在返回JSON時同時返回錯誤信息,這時就需要用到BindingResult類來處理錯誤信息。
@RequestMapping(value = "/user", method = RequestMethod.POST) @ResponseBody public MapaddUser(@RequestBody @Validated UserServiceDTO userServiceDTO, BindingResult result) { Map resultMap = new HashMap<>(); if (result.hasErrors()) { //獲取錯誤信息 List errorList = result.getAllErrors(); StringBuilder stringBuilder = new StringBuilder(); for (ObjectError error : errorList) { stringBuilder.append(error.getDefaultMessage()); } resultMap.put("status", "fail"); resultMap.put("errorMsg", stringBuilder.toString()); return resultMap; } //數(shù)據(jù)綁定成功后的操作 ... resultMap.put("status", "success"); resultMap.put("data", userData); return resultMap; }
在上述示例中,我們定義了一個addUser方法,該方法接收一個@RequestBody注解和@Validated注解的UserServiceDTO對象,并且傳入了BindingResult類型的result變量來存儲錯誤信息。
如果數(shù)據(jù)綁定過程中發(fā)生錯誤,我們可以使用result.hasErrors()方法來判斷是否有錯誤,并使用result.getAllErrors()方法獲取所有的錯誤信息。我們可以將錯誤信息封裝到Map對象中,然后將它作為JSON格式的數(shù)據(jù)返回給前端。如果沒有發(fā)生錯誤,我們可以繼續(xù)進行后續(xù)的操作并返回正確的數(shù)據(jù)。
使用BindingResult類來返回JSON數(shù)據(jù)是非常方便的,它可以幫助我們在數(shù)據(jù)綁定的過程中及時捕獲錯誤,并將錯誤信息快速地返回給前端。無論是后端開發(fā)人員還是前端開發(fā)人員,都可以輕松地理解這種方式的數(shù)據(jù)傳輸格式,并按照對應的方式來處理相應的數(shù)據(jù)。因此,在實際的開發(fā)過程中,我們經(jīng)常會使用BindingResult來返回JSON數(shù)據(jù)。