我对渲染属性有点问题。我想用它来登录,如果有人第一次在我的网站上连接,他可以登录,但是当他登录时,他看不到表格。但是当页面加载时,我无法隐藏表单......
使用我的代码可能会更容易。
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代码上写它时不是。
答案 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>