处理多种方法的请求

时间:2018-09-27 09:18:31

标签: java spring-boot

我目前正在开发Spring Boot应用程序。我的自定义用户数据存储在存储库中。通常,我会将用户数据附加到每个Controller中(如果对用户进行身份验证,则需要这样做)。但是,如果我输入未映射的URL,则逻辑上将不会传递数据,并且错误404页面将无法正确加载。

我不能只是使用

@RequestMapping(value="**",method = RequestMethod.GET)
    public String getAnythingelse(){
    return "redirect:/404.html";
}

因为我处理的网址分散在不同的控制器类中。

这导致询问我该如何解决?

我将进行两次理论上的尝试,但是我不知道该怎么做: 1)以某种方式给予map-anything方法较低的优先级,因此它将在最后被调用。 2)调用map-anything方法,但有些方法会使系统也调用其他方法。

编辑:即使我将其添加到例如我的索引控制器,它将使网站完全未格式化。

2 个答案:

答案 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