我正在使用Hibernate + JSF + PrimeFaces。現在我想更新管理員的密碼,但我總是得到錯誤對話框。我無法弄清楚我的代碼有什麼問題。希望有人建議我。使用Hibernate無法更新密碼
loginBean(SessionScoped)
public class loginBean {
private Users username;
private UsersDao userdao;
/** Creates a new instance of loginBean */
public loginBean() {
userdao = new UsersDao();
username = new Users();
}
public Users getUsername() {
return username;
}
public void setUsername(Users username) {
this.username = username;
}
public void updateUser(){
String msg;
if(userdao.updateUser(username)){
msg = "Updated Successfully!";
}else{
msg = "Error. Please check again!";
}
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, msg, null);
FacesContext.getCurrentInstance().addMessage(msg, message);
}
}
UserDAO.java
public class UsersDao {
public boolean updateUser(Users user){
boolean flag;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try{
session.beginTransaction();
session.save(user);
session.beginTransaction().commit();
flag = true;
}catch(Exception e){
flag = false;
session.beginTransaction().rollback();
}
return flag;
}
}
XHTML
<p:growl id="growl" showDetail="true" life="3000" />
<h:form id="tab">
<h:outputLabel>Password</h:outputLabel>
<h:inputSecret value="#{loginBean.username.password}" />
<p:commandButton id="loginButton" value="Login" update=":growl" ajax="false" action="#{loginBean.updateUser}"/>
</h:form>
你的日誌/控制檯說什麼? 「 –
」錯誤,請再檢查一次!「。我正在使用if ... else ... –
您的DAO的'updateUser'當然會拋出一個異常(之後被捕獲並被標記)。哪個例外?程序員級錯誤跟蹤在這裏很有用,而不是顯示給最終用戶的錯誤。 –