解决方案比想像的要简单得多。可以使用一种通用
ResourceNotFoundException定义,如下所示:
public class ResourceNotFoundException extends RuntimeException { }
然后可以使用
ExceptionHandler注释处理每个控制器中的错误:
class MeterController { // ... @ExceptionHandler(ResourceNotFoundException.class) @ResponseStatus(HttpStatus.NOT_FOUND) public String handleResourceNotFoundException() { return "meters/notfound"; } // ... @RequestMapping(value = "/{number}/edit", method = RequestMethod.GET) public String viewEdit(@PathVariable("number") final Meter meter, final Model model) { if (meter == null) throw new ResourceNotFoundException(); model.addAttribute("meter", meter); return "meters/edit"; }}
每个控制器都可
ExceptionHandler以为定义自己的控制器
ResourceNotFoundException。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)