注意:我不想重定向到自定义401页面,我只想使用默认页面。
我试着按照这个问题回答:
How to "throw" JSF2 404 error?
使用以下代码:
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
externalContext.setResponseStatus(401);
facesContext.responseComplete();
但它根本没有重定向。它只是继续。
我也尝试过:
externalContext.responseSendError(HttpServletResponse.SC_UNAUTHORIZED, "Page not found.");
但这也没有做任何事情。
编辑:我认为问题在于重定向不是立竿见影的。在我的代码之前"返回"在JSF生命周期中,它会引发异常。有没有办法立即重定向而不是等待?