我目前正在开发Spring Boot应用程序。我的自定义用户数据存储在存储库中。通常,我会将用户数据附加到每个Controller中(如果对用户进行身份验证,则需要这样做)。但是,如果我输入未映射的URL,则逻辑上将不会传递数据,并且错误404页面将无法正确加载。
我不能只是使用
@RequestMapping(value="**",method = RequestMethod.GET)
public String getAnythingelse(){
return "redirect:/404.html";
}
因为我处理的网址分散在不同的控制器类中。
这导致询问我该如何解决?
我将进行两次理论上的尝试,但是我不知道该怎么做: 1)以某种方式给予map-anything方法较低的优先级,因此它将在最后被调用。 2)调用map-anything方法,但有些方法会使系统也调用其他方法。
编辑:即使我将其添加到例如我的索引控制器,它将使网站完全未格式化。
答案 0 :(得分:0)
好吧,您可以为您的项目创建一个DefaultController,并在其顶部使用RequestMapping注释。我尝试了这段代码:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value="**")
public class DefaultController {
@RequestMapping(method = RequestMethod.GET)
public String getAnythingElse(){
return "redirect:/404.html";
}
}
我认为它确实可以满足您的要求,但是就我而言,它打断了我的swagger-ui。
答案 1 :(得分:0)
我认为这段代码可以帮助您实现自定义错误页面: https://gist.github.com/jonikarppinen/662c38fb57a23de61c8b