2016-12-27 98 views
1

我使用Spring MVC和我有一个控制器中的下列方法:Spring MVC的:控制器方法不会被调用

@RequestMapping(value = {"/web", "/web/"}) 
public void redirectToIndexUi(HttpServletRequest request, HttpServletResponse response) { 
    try { 
     //some condition 
     response.sendRedirect(request.getContextPath() + "/ui/index.html"); 

    } catch (IOException ex) { 
     LOGGER.error("IOException is thrown while trying to redirect to index.html page.", ex); 
    } 
} 

当用户进入以下网址http://localhost:8080/myapp/web/ redirectToIndexUi方法被调用,但在这种情况下, http://localhost:8080/myapp/web/index.html不调用redirectToIndexUi方法。可能是什么原因 ?

+0

你真的不会那样做,因为它会导致无尽的重定向循环! –

回答

2

您的控制器未调用的原因是您的映射。您正在将控制器方法映射到URI '/web'而不是'/web/index.html'

而且你可以使用通配符如'/web/**'来指示每个请求都使用/ web /来使用你的控制器的方法。因此,只要您的请求遇到类似于http://localhost:8080/myapp/web/**的任何内容,就会调用您的方法。

+0

如果你想获得/ web /下的所有页面的重定向行为,你可以使用映射'/ web/*' – ZeusNet

相关问题