gpt4 book ai didi

jsf - 素面 p :dialog keeps reopening

转载 作者:行者123 更新时间:2023-12-04 15:35:08 28 4
gpt4 key购买 nike

我的 p:dialog 不断加载,我只需要它出现一次。有谁知道怎么做?

    <h:body style="background: url('img/background/teste/brushed_alu.png')!important" onload="dialogAtivacao.show();">
<script type="text/javascript">
$(document).ready(function() {
document.getElementById("j_username").focus();
});
</script>

<p:dialog id="dialogAtivar" header="Ativação de empresa" showEffect="drop" hideEffect="drop" resizable="false"
widgetVar="dialogAtivacao" modal="true" closable="true" rendered="#{sessionScope['SPRING_SECURITY_LAST_EXCEPTION'].message == 'ATIVACAO'}">
<ui:include src="pages/ativacao/AtivacaoEmpresa.xhtml"/>
</p:dialog>
...

按钮:
  <p:panel  styleClass="panelBotaoLogin" >
<h:commandButton id="saveButton" action="#{login.doLogin()}" value=" Entrar" styleClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only botaoEntrar"/>
</p:panel>

LoginBean 中的 login() :
    public String doLogin() throws IOException, ServletException {
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
RequestDispatcher dispatcher = ((ServletRequest) context.getRequest()).getRequestDispatcher("/j_spring_security_check?j_username=" + username + "&j_password=" + password);
dispatcher.forward((ServletRequest) context.getRequest(), (ServletResponse) context.getResponse());
FacesContext.getCurrentInstance().responseComplete();

return null;
}

我有一个 customAuthenticationProvider 在数据库为空时返回 'ATIVACAO',所以我需要打开这个对话框来插入数据,但它一直重新打开(关闭并立即重新打开)。

最佳答案

  • <h:body onload="dialogAtivacao.show();"/>翻译成当 <body>加载 HTML 的标签,显示弹出窗口。 <body>当 View 的整页重新加载发生时,标签将重新加载
  • <h:commandButton id="saveButton" action="#{login.doLogin()}" value=" Entrar" styleClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only botaoEntrar"/>每次单击按钮时都会触发整页刷新。

  • 总之,每次我单击此按钮时,都会重新加载整个页面并显示对话框

    改用 ajax 命令组件:
     <p:commandButton id="saveButton" action="#{login.doLogin}" value="  Entrar" styleClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only botaoEntrar"/>

    这样,一个ajax请求被触发, onload只触发一次

    关于jsf - 素面 p :dialog keeps reopening,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16300076/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com