2010-07-15 73 views
0

加載登錄頁面時,輸入文本框顯示爲#{ad.userid}。當我擦除它並輸入id和pwd並單擊提交按鈕時,login方法被調用,但userid屬性在bean中給出null值。這怎麼可能發生,我該如何解決它?以jsf形式輸入錯誤

這裏是login.jsp

<%@ page contentType="text/html"%> 
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 

<f:view> 
<html> 

     <h:form> 
      <h:outputText value="Login"/> 
      <h:inputText value="#{ad.userid}" id="log" required="true"/> 
      <h:outputText value="Password" /> 
      <h:inputSecret id="pw" value="#{ad.password}" required="true"/> 
      <h:commandButton value="submit" action="#{ad.login}"/> 
     </h:form> 
    </body> 
</html> 
</f:view> 

這裏是bean的操作方法。登錄成功的更早。所有的數據庫連接都在構造函數中設置。

public String login() { 
    ResultSet rs; 
    try { 
     System.out.println(userid); // this is giving null 
     String s = "select id from slogin where id='" + userid + "'"; 
     System.out.println(s); 
     rs = st.executeQuery(s); 
     if (rs.next()) { 
      String loginid = rs.getString(1); 
      if (userid.equals(loginid)) { 
       id = loginid; 
       return "studhome"; 
      } 
     } else { 
      System.out.println("error"); 
     } 
    } catch(Exception e) { 

    } 
} 

getter和setter方法:

public void setpassword(String pass) { 
    this.password = pass; 
} 

public String getpassword() { 
    return password; 
} 

public void setuserid(String uid) { 
    this.userid = uid; 
} 

public String getuserid() { 
    return userid; 
} 
+0

在編輯過程中,郵件格式規則在右欄描述...... – BalusC 2010-07-15 11:23:53

+0

感謝您編輯我的問題。 – john 2010-07-17 12:21:33

+0

這個問題解決了嗎? – BalusC 2010-07-21 12:33:53

回答

1

請,它正確地使用格式化代碼的工具,StackOverflow上提供把你的時間來編輯你的問題,格式。如果您使用帶有符號「0101010101」的按鈕,則會顯示大括號。

答案:

變化:

public void setuserid(String uid) 

public void setUserid(String uid) 

也:

public void setpassword(String pass) 

public void setPassword(String pass) 

看看Java Naming Conventions,JSF依靠它們來訪問託管bean的屬性。

順便說一下,嘗試你的支持bean設置爲Session範圍,看看它是否工作,放棄其他問題

+0

我不明白如何在代碼中放置<符號。反正我改變了方法名稱,但沒有工作。問題不是與名稱有關。我已經用舊名稱成功運行了它。我把一些jfree圖表jar文件 在apache/lib /獲取graphs.I做了類路徑的一些改變也。我從那裏得到的錯誤。我刪除了所有這些變化,但沒有得到正常的執行早。 – john 2010-07-15 10:53:44

+0

請在答案底部查看我的更新。 – pakore 2010-07-15 11:50:09

0

我不知道這是有益的 - 在干將 1)添加調試(sysouts)語句和setter並使用pakore所說的命名約定(更好的是你可以讓eclipse生成getter和setter)。

2)嘗試編寫一個Phaselistener以查看是否所有應用請求和jsf生命週期的更新模型階段都發生。