gpt4 book ai didi

java - 如何在 Spring MVC 中为不存在的资源设置 url 映射?

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:45 24 4
gpt4 key购买 nike

我想要做的是,当用户输入无处可去的网址时,我的意思是该网址没有比特殊映射应该起作用的资源。

例如,我有下一个 Controller :

@Controller
public class LoginController {

@RequestMapping(value = {"/", "/login"}, method = RequestMethod.GET)
public ModelAndView welcome() {
return new ModelAndView("mainPage");
}
}

当用户输入 {contextPath}/或 {contextPath}/login 时,此映射起作用现在我想映射所有其他网址,我喜欢这样:

@Controller
public class LoginController {

@RequestMapping(value = {"/", "/login"}, method = RequestMethod.GET)
public ModelAndView welcome() {
return new ModelAndView("mainPage");
}

@RequestMapping(value = {"/**"}, method = RequestMethod.GET)
public ModelAndView notFound() {
return new ModelAndView("customized404Page");
}
}

现在,当用户输入无效路径时,例如 {contextPath}/sdfsdfcustomized404Page 会显示给他

但是最后一个映射更通用,并且它始终有效,这就是为什么第一个映射不起作用。

问题:如何映射所有无效网址?或者也许在 Spring 中有一些更简单的方法来做到这一点?

最佳答案

定制 404 页面的最简单方法是在 web.xml 中配置它们

<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
<小时/>

当一个简单的 jsp 不够时,因为您需要一个成熟的 Spring Controller ,那么您可以将位置映射到 Controller 的映射:

@Controller
public class HttpErrorController {

@RequestMapping(value="/error404")
public String error404() {
...
return "error404.jsp";
}
}

<error-page>
<error-code>404</error-code>
<location>/error404</location>
</error-page>

关于java - 如何在 Spring MVC 中为不存在的资源设置 url 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26697802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com