2013-01-21 55 views
-2
<pre><h:form> 
     <h:panelGrid> 
      <h:outputLabel value="Username: " style="font-weight:bold" /> 
      <h:inputText value="#{user.username}" /> 
      <h:outputLabel value="Password: " style="font-weight:bold" /> 
      <h:inputSecret value="#{user.password}" /> 
      <h:commandButton value="Submit" action="#{user.doLogin()}" /> 
     </h:panelGrid> 
    </h:form> 
</pre> 

有人解釋我爲什麼會導致異常?這是我的第一個JSF應用程序。JSF空指針異常

ava.lang.NullPointerException 
    at userSession.getUsername(userSession.java:45) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
+4

'userSession#getUsername'方法有錯誤。請提供託管的bean代碼以獲得更好的幫助。此外,請指定您是否使用JSF 1.x或JSF 2.x –

回答

0

檢查你的第45行的getUserName方法。可能該方法的參數有一個null參考,其中。意味着一個setter給出一個null。試着在doLogin()的方法中獲得輸入文字

FacesContext facesContext = FacesContext.getCurrentInstance(); 
ExternalContext externalContext = facesContext.getExternalContext(); 
Map<String, String> parameterMap = (Map<String, String>) externalContext.getRequestParameterMap(); 
username=parameterMap.get("id_of_your_inputfield");