【发布时间】:2014-03-05 19:47:33
【问题描述】:
我有一个身份验证表单,当我点击命令按钮时,它应该刷新表单以防登录失败,否则重定向用户
我在commandButton中创建ajax来检查是否登录失败,如果是,OutputText将变为:登录失败
我不需要修改以使其工作
这是我的JSF,
<h:form id="form_login" >
<div>
<!-- email -->
<div class="input-group input-group-sm">
<h:inputText id="mail" type="text" class="form-control" placeholder="Email" value="#{login.mail}" required="true" requiredMessage="Entrez votre mail svp" validatorMessage="Email invalide">
<f:ajax event="keyup" render="messageerreur" />
<f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" /> </h:inputText>
<span class="input-group-addon"><i class="fa fa-check"></i></span>
</div>
<h:message id="messageerreur" for="mail" class="recover-password" style="color:#eb6a5a" />
<!-- Password -->
<div class="input-group input-group-sm">
<h:inputSecret id="password" class="form-control" placeholder="Password" value="#{login.pass}" required="true" requiredMessage="Entrez votre password svp" >
</h:inputSecret>
<span class="input-group-addon"><i class="fa fa-times"></i></span>
</div>
<h:message id="erreurpass" for="password" class="recover-password" style="color:#eb6a5a" />
</div>
<br></br>
<div class="pull-right">
<h:commandButton id="login_button" action="#{login.authentification()}" value="Login" class="btn btn-login">
<f:ajax onevent="click" execute="form_login" render="login_failed"/>
</h:commandButton></div>
<div class="center">
<h:outputText id ="login_failed" class="recover-password" value="#{login.failed}" />
</div>
</h:form>
这里是托管 Bean 中的函数:
public String authentification()
{
System.out.println("Hi");
System.out.println(getMail());
System.out.println(getPass());
if(getMail()!=null && getPass()!=null)
{
login_success=marchandBo.authentication(getMail(), getPass());
}
if(login_success)
return "Dashboard_user.xhtml";
else
setFailed("Login failed");
return null;
}
【问题讨论】:
-
我很惊讶这个作品。你确定你有
class="form-control"等吗?也尝试从action更改为f:ajax listener="#{...}"。 -
哦,可以了,谢谢,请作为答案