我正在使用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);
}
}
当用户输入以下url http://localhost:8080/myapp/web/时,会调用redirectToIndexUi方法,但在这种情况下http://localhost:8080/myapp/web/index.html不会调用redirectToIndexUi方法。可能是什么原因?
答案 0 :(得分:2)
您的控制器未被调用的原因是您的映射。您将控制器方法映射到URI express.static
而不是app.use(express.static(path.join(__dirname, 'public/data'), {
dotfiles: 'allow'
}));
。
您可以使用'/web'
之类的通配符将每个请求指向/ web /,以使用您的控制器方法。因此,只要您的请求遇到与'/web/index.html'
类似的任何内容,就会调用您的方法。