PrimeFaces - 无法渲染

时间:2013-10-10 14:44:47

标签: jsf primefaces

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

使用我的代码可能会更容易。

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代码上写它时不是。

1 个答案:

答案 0 :(得分:0)

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

如果您使用的是Primefaces,请在表单中放置一个p: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>