Вот код, подтверждающий мое намерение (Meter — это доменный класс):
Код: Выделить всё
@RequestMapping(value = "/{number}", method = RequestMethod.GET)
public String getMeterDetails(@PathVariable("number") final Long number, final Model model) {
final Meter result = meterService.findOne(number);
if (result == null) {
// here some code to return an errorpage
}
model.addAttribute("meter", result);
return "meters/details";
}
Код: Выделить всё
@ResponseStatus(HttpStatus.NOT_FOUND)
public class MeterNotFoundExcption extends RuntimeException { }
Но мне не нравится засорять мое приложение множеством мелких исключений.
Другая возможность — использовать HttpServletResponse и установить код состояния. вручную:
Код: Выделить всё
@RequestMapping(value = "/{number}", method = RequestMethod.GET)
public String getMeterDetails(@PathVariable("number") final Long number, final Model model,
final HttpServletResponse response) {
final Meter meter = meterService.findOne(number);
if (meter == null) {
response.setStatus(HttpStatus.NOT_FOUND.value());
return "meters/notfound";
}
model.addAttribute("meter", meter);
return "meters/details";
}
Есть ли элегантный способ предотвратить многократное дублирование этих строк?
Подробнее здесь: https://stackoverflow.com/questions/210 ... errorpages
Мобильная версия