Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 始终在url中添加尾随斜杠_Spring Mvc - Fatal编程技术网

Spring mvc 始终在url中添加尾随斜杠

Spring mvc 始终在url中添加尾随斜杠,spring-mvc,Spring Mvc,我将SpringMVC与Spring控制器一起使用。如果url末尾不存在尾随斜杠,我希望始终添加它。我该怎么做 www.mysite.com/something -> www.mysite.com/something/ www.mysite.com/somethingelse/ -> www.mysite.com/somethingelse/ 您可以使用HandlerInterceptor实现这一点: 拦截器将检查请求URI是否以斜杠结尾。 如果是,则处理请求;如果不是,则使用带有

我将SpringMVC与Spring控制器一起使用。如果url末尾不存在尾随斜杠,我希望始终添加它。我该怎么做

www.mysite.com/something -> www.mysite.com/something/
www.mysite.com/somethingelse/ -> www.mysite.com/somethingelse/

您可以使用
HandlerInterceptor
实现这一点:

拦截器将检查请求URI是否以斜杠结尾。 如果是,则处理请求;如果不是,则使用带有尾随斜杠的相同URI重定向响应。 在下面的示例中,我忽略带有查询字符串的请求,因为我不知道您希望如何处理这种情况

拦截器:

@组件
公共类TrailingSlashInterceptor扩展HandlerInterceptorAdapter实现HandlerInterceptor{
@凌驾
公共布尔预处理(HttpServletRequest请求、HttpServletResponse响应、对象处理程序)引发异常{
if(StringUtils.isBlank(request.getQueryString())&&!request.getRequestURI().endsWith(“/”){
response.sendRedirect(request.getRequestURL().append(“/”).toString());
返回false;
}
返回true;
}
}
在配置中注册并映射拦截器:

@Autowired
私有跟踪slashinterceptor跟踪slashinterceptor;
@凌驾
公共无效附加接收器(侦听器注册表){
登记处
.addInterceptor(trailingSlashInterceptor)
.addPathPatterns(“/**”)
.ExcludePathPathPatterns(“/static/**”);
}
我注意到,在JSP中,如果有的话,必须将URL以斜杠开头,例如:


使用此方法,所有没有尾部斜杠的请求将临时重定向(302)到带有尾部斜杠的同一URI。

您如何运行此应用程序?Tomcat、Jetty、独立或嵌入式?@diginoise Tomcat。