2016-09-27 41 views
1

我有一個映射的網址到/foo.jsp這個重定向到一個控制器,但它不是由春天處理,並返回一個404。似乎該網址被忽略,並直接發送到tomcat的。是否有可能使彈簧處理它?如何重定向由「.jsp」結尾的網址

要重現,從https://github.com/spring-projects/spring-boot/tree/1.4.x/spring-boot-samples/spring-boot-sample-tomcat7-jsp開始只加:

@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 
    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addRedirectViewController("/foo", "/").setStatusCode(HttpStatus.MOVED_PERMANENTLY); 
     registry.addRedirectViewController("/foo.html", "/").setStatusCode(HttpStatus.MOVED_PERMANENTLY); 
     registry.addRedirectViewController("/foo.jsp", "/").setStatusCode(HttpStatus.MOVED_PERMANENTLY); 
    } 
} 

然後導航到/foo/foo.html作品如預期,但/foo.jsp返回404

+1

使用[UrlRewriteFilter](http://tuckey.org/urlrewrite/)我能夠重定向一個jsp url,但彈簧行爲感覺有bug。 –

回答

1

你會用一個ViewResolver來處理JSP視圖。 並使用this技術以不同的方式分隔html和jsp視圖。

+0

我們正在將jsp/scriptlets遷移到mvc,整個過程是通過重定向到新的URL來保持引用的url –