我想做的只是一个简单的注销功能。主页面会调用模板页面;由标题和内容组成。标题包含注销按钮。页面中有两种形式,一种在标题中(注销按钮),一种在内容中(几个按钮、链接等)。
我的问题是第一次单击注销链接时页面刷新,并且只有在第二次单击后才能继续。当我在内容表单中包含 primefaces 或 ajax 代码时,问题开始出现。当我删除该特定代码时,注销会按预期工作。
主模板中的注销表单templateUser.xhtml
:
<h:form id="logout">
<h:commandLink action="#{tenantController.customLogout(e)}"
id="logoutBtn" immediate="true" value="Logout" />
</h:form>
支持bean:
public String customLogout(ActionEvent e) {
return "login.xhtml";
}
仅供参考:customLogout 方法也包含会话销毁,但我只是将页面重定向放在这里。
在模板客户端中,模板被指定为:
<ui:composition template="/templateUser.xhtml">
至于JSF库,目前使用jsf 2.0
我尝试过的解决方案:
immediate="true"
id
为表单和commandLink(模板表单和内容表单)放置- 使用 primefaces (
<p:commandLink>
with ajax false ==> this returb to the previous page; backed bean中的方法没有运行。
以下是我在这里尝试的几个链接: