登录jsf hibernate按钮登录不应答
我正在开发一个登录jsf和hibernate应用程序,我遇到了一个问题,当我点击登录按钮时什么也没发生登录jsf hibernate按钮登录不应答,jsf,Jsf,我正在开发一个登录jsf和hibernate应用程序,我遇到了一个问题,当我点击登录按钮时什么也没发生 <h:head></h:head> <body> <h:form> <h:outputText value="#{accountController.message}" escape="false"> </h:outputText> </h:form> <h:panelGrid col
<h:head></h:head>
<body>
<h:form>
<h:outputText value="#{accountController.message}" escape="false"> </h:outputText>
</h:form>
<h:panelGrid columns ="2" cellpadding="2" cellpacing="2">
<h:outputText value="Username"></h:outputText>
< h:inputText value="#{utilisateursController.utilisateurs.username}"> </h:inputText>
<h:outputText value="Password"></h:outputText>
<h:inputSecret value="#{utilisateursController.utilisateurs.password}"></h:inputSecret>
<h:commandButton value = "login" action="#{utilisateursController.login()}" ></h:commandButton>
利用URSModel.java
package model;
import org.hibernate.Query;
import org.hibernate.resource.transaction.spi.TransactionStatus;
import entities.*;
public class UtilisateursModel extends AbstractModel<Utilisateurs>{
public UtilisateursModel(){
super(Utilisateurs.class);
}
public Utilisateurs login(String username, String password){
try{
if (!(sessionFactory.getCurrentSession().getTransaction().getStatus() != TransactionStatus.ACTIVE) )
sessionFactory.getCurrentSession().getTransaction().begin();
Query query = sessionFactory
.getCurrentSession()
.createQuery(
"from utilisateurs where username=:username and password=:password");
query.setString("username", username);
query.setString("password", password);
return (Utilisateurs)query.uniqueResult();
} catch(Exception e){
return null;
}
}
}
包模型;
导入org.hibernate.Query;
导入org.hibernate.resource.transaction.spi.TransactionStatus;
进口实体。*;
公共类UsilizateUrsModel扩展了AbstractModel{
公共利用模型(){
超级(用户级);
}
公共用户登录(字符串用户名、字符串密码){
试一试{
if(!(sessionFactory.getCurrentSession().getTransaction().getStatus()!=TransactionStatus.ACTIVE))
sessionFactory.getCurrentSession().getTransaction().begin();
Query=sessionFactory
.getCurrentSession()
.createQuery(
“来自用户,其中用户名=:用户名和密码=:密码”);
query.setString(“用户名”,username);
query.setString(“密码”,password);
return(usilizateurs)query.uniqueResult();
}捕获(例外e){
返回null;
}
}
}
感谢您的帮助,我真的没有发现代码有任何错误当命令按钮位于窗体外部时,您无法执行操作。将代码更改为以下内容:
<h:form>
<h:outputText value="#{accountController.message}" escape="false"> </h:outputText>
<h:panelGrid columns ="2" cellpadding="2" cellpacing="2">
<h:outputText value="Username"></h:outputText>
<h:inputText value="#{utilisateursController.utilisateurs.username}"/>
<h:outputText value="Password"/>
<h:inputSecret value="#{utilisateursController.utilisateurs.password}"/>
<h:commandButton value = "login" action="#{utilisateursController.login()}" />
</h:panelGrid>
</h:form>
希望这对你有用 您需要根据以下内容更改一些代码
@ManagedBean(name="utilisateursController") instead of @ManagedBean(name="UtilisateursController")
希望你能解决你的问题 将您的commandButton放入
中。当按钮位于表单标记中时,将触发操作。欢迎使用堆栈溢出!在发布关于JSF的未来问题之前,请确保您已阅读。当前问题的当前形式包含许多与实际问题无关的代码。尝试解决这个问题。谢谢,我解决了登录按钮的问题,但是当我执行时,即使我输入了正确的登录名和密码,我总是会收到“帐户无效”的消息!!请调试您的代码并使用managebean登录方法进行检查您获得了正确的用户名和密码,并在检查数据库时添加了带有用户名和密码的trim()。您能否解释更多,与数据库的连接正常,登录代码tooi反复编写并检查了代码,同样的问题
@ManagedBean(name="utilisateursController") instead of @ManagedBean(name="UtilisateursController")