Я использую Spring mvc, и мой вопрос касается метода sendError
от HttpServletResponse
.HttpServletResponse.sendError (int sc) vs HttpServletResponse.setStatus (int sc)
Может кто-то пожалуйста, скажите мне, что лучше между:
@RequestMapping(method = RequestMethod.POST, produces = "application/json")
public void createAdvertisement(@RequestBody @Validated(value = ValidationGroups.AdvertisementCreateUpdate.class) Advertisement advertisement, BindingResult bindingResult,
HttpServletResponse response, @CurrentMember Member member) {
if (bindingResult.hasErrors()) {
response.setStatus(SC_BAD_REQUEST);
return;
}
response.setStatus(SC_CREATED);
advertisementService.createAdvertisement(member, advertisement);
}
и что:
@RequestMapping(method = RequestMethod.POST, produces = "application/json")
public void createAdvertisement(@RequestBody @Validated(value = ValidationGroups.AdvertisementCreateUpdate.class) Advertisement advertisement, BindingResult bindingResult,
HttpServletResponse response, @CurrentMember Member member) {
if (bindingResult.hasErrors()) {
response.sendError(SC_BAD_REQUEST);
}
response.setStatus(SC_CREATED);
advertisementService.createAdvertisement(member, advertisement);
}
Обратите внимание, что в первом фрагменте кода, я поставил код состояния и вернуться в то время как во втором один я использую метод sendError
.
Может кто-нибудь объяснить причины и недостатки обоих решений?
Почему закрытие ??? – balteo
Я бы тоже сказал. Вместо этого верните «ResponseEntitiy» с соответствующим статусом и дайте рамке решить. –