我正在使用登录过滤器并已成功实施。但是现在,如果用户试图通过直接在地址栏中提供(页面的URL)来尝试查看页面,我需要显示一条错误消息“需要验证”。
此外,当会话超时时,我需要显示“会话已过期”等错误消息。 后者的实现(由所有人建议),使用过滤器重定向到login或index.xhtml,结束了。但我想到了显示错误信息。
任何帮助? 提前致谢
答案 0 :(得分:0)
您可以尝试使用onload检查页面正文,它会调用远程命令。在远程命令的操作本身中,您可以指定执行检查的Bean方法:
<h:body id="page_body" onload="isConnected();">
<h:form >
<p:remoteCommand name="isConnected" update=":page_body" autoRun="false" action="#{myBean.checkIfLoggedIn()}"/>
</h:form>
..................
</h:body>
答案 1 :(得分:0)
请在此处查看我的回答:https://stackoverflow.com/a/23217445/1453701 在您的情况下,您应该使用url参数让视图知道它应该在@PostConstruct中添加FacesMessage
在你的bean中你可以放:
@PostConstruct
public void init() {
String showMessage = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("showMessage");
if ("true".equals(showMessage)) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Authentication Required", "place your detailed message here"));
}
}