我正在使用@controlleradvice,但是id不起作用,我不知道为什么。它是@controlleradvice:
@ControllerAdvice
public class MainControllerAdvice {
private final static Logger log = LoggerFactory.getLogger(MainControllerAdvice.class);
@ExceptionHandler(value = DataNotFoundException.class)
public String handleNotFound(){
return "not-found";
}
}
自定义异常:
@ResponseStatus(value= HttpStatus.NOT_FOUND, reason="No such data")
public class DataNotFoundException extends RuntimeException {
public DataNotFoundException() {
super();
}
}
和控制器:
@GetMapping(value = "/details/{id}")
public String details(@PathVariable Integer id, Model model) throws DataNotFoundException {
Pupil pupil = pupilService.get(id);
if (pupil == null) {
throw new DataNotFoundException();
}
model.addAttribute("pupil", pupil);
return "details";
}
我做错了什么?
1条答案
按热度按时间2ic8powd1#
基本上,您希望返回一个视图名称并将其呈现为显示自定义错误页。如果您使用的是服务器端模板引擎,例如
Thymeleaf
在springboot应用程序中,在templates文件夹中添加自定义页面并进行以下更改。将自定义错误页放在
templates
与中设置的名称相同的文件夹ModelAndView
对象。Spring起动器
thymeleaf
```org.springframework.boot
spring-boot-starter-thymeleaf