Java 如何在SpringMVC中为不存在的资源设置url映射?
我想做的是,当用户输入的url毫无用处时,我的意思是,这个url没有任何资源,特殊映射应该起作用 例如,我有下一个控制器:Java 如何在SpringMVC中为不存在的资源设置url映射?,java,spring,spring-mvc,model-view-controller,url-mapping,Java,Spring,Spring Mvc,Model View Controller,Url Mapping,我想做的是,当用户输入的url毫无用处时,我的意思是,这个url没有任何资源,特殊映射应该起作用 例如,我有下一个控制器: @控制器 公共类登录控制器{ @RequestMapping(值={”/“,“/login”},方法=RequestMethod.GET) 公共模型和视图欢迎(){ 返回新的ModelAndView(“主页”); } } 当用户输入{contextPath}/或{contextPath}/登录时,此映射工作 现在我想映射所有其他URL,我喜欢这样: @控制器 公共类登录控
@控制器
公共类登录控制器{
@RequestMapping(值={”/“,“/login”},方法=RequestMethod.GET)
公共模型和视图欢迎(){
返回新的ModelAndView(“主页”);
}
}
当用户输入{contextPath}/或{contextPath}/登录时,此映射工作
现在我想映射所有其他URL,我喜欢这样:
@控制器
公共类登录控制器{
@RequestMapping(值={”/“,“/login”},方法=RequestMethod.GET)
公共模型和视图欢迎(){
返回新的ModelAndView(“主页”);
}
@RequestMapping(值={”/**},方法=RequestMethod.GET)
公共模型和视图未找到(){
返回新的ModelAndView(“customized404Page”);
}
}
现在,当用户输入无效路径时,例如{contextPath}/sdfsdf customized404页面就会显示给他
但最后一个映射更一般,而且总是有效的,这就是为什么第一个映射不起作用的原因
问题:
如何映射所有无效的URL?
或者在春季有更简单的方法来实现这一点?您可以使用会话过滤器来实现这一点 检查此链接。
定制404页面的最简单方法是在
web.xml
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
@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>