0

我对渲染属性有一点问题。我想用它登录,如果有人第一次在我的网站上连接,他可以登录,但是当他登录时,他看不到表单。但是当页面加载时,我无法隐藏表单......

也许使用我的代码会更容易。

HTML

              <h:panelGroup id="sidebar" layout="block">
                <h:panelGroup id="sbox1" layout="block">
                    <h:panelGroup class="title" layout="block">
                        <h2> Espace Membre </h2>
                    </h:panelGroup>
                    <ul class="style2">
                            <h:form rendered="#{!membreCtrl.estConnecte}">
                                Connection : <h:outputText value="#{membreCtrl.estConnecte}"></h:outputText>
                                Login : <h:inputText id="login" value="#{membreCtrl.login}" /> <br/>
                                Password : <h:inputSecret id="mdp" value="#{membreCtrl.mdp}" /> <br/>
                                <h:commandButton action="#{membreCtrl.identifier()}" value="Se connecter" />
                            </h:form>
                    </ul>
                </h:panelGroup>

 public String identifier() {
    membreConnecte = membreEJB.connecter(login, mdp);
    if (membreConnecte == null) {
        return "FAILURE";
    }
    estConnecte = true;
    return "SUCCESS";
}

如果我输入了正确的登录名/密码,我就会进入索引页面,但是我想隐藏<h:form ..我写的那个。但它不起作用。当我在 Bean 中打印结果时,我的布尔值“estConnecte”为真,但当我将其写入 HTML 代码时则不然。

4

1 回答 1

0

单击按钮后是否更新了表单?

如果您使用 Primefaces,请将 ap:outputPanel 放入表单中,然后更新表单:

<h:form>
    <p:outputPanel rendered="#{!membreCtrl.estConnecte}">
       Connection : <h:outputText value="#{membreCtrl.estConnecte}"></h:outputText>
       Login : <h:inputText id="login" value="#{membreCtrl.login}" /> <br/>
       Password : <h:inputSecret id="mdp" value="#{membreCtrl.mdp}" /> <br/>
       <p:commandButton action="#{membreCtrl.identifier()}" value="Se connecter" update="@form"/>
    <p:outputPanel/>
 </h:form>
于 2013-10-10T17:12:54.773 回答