JSF Formularwert null

prinzessin88

Mitglied
Hallo!
Ich habe einen Fehler im compiler stehen mit dem ich ncihts anfangen kann ich habe schon alles überprüft, aber der Fehler tritt weiterhin auf. Kann mir jemand helfen?

Java:
ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
org.apache.jasper.el.JspPropertyNotFoundException: /sites/intern_login_anlegen.jsp(96,10) '#{portal.user.vorname}' Target Unreachable, 'user' returned null
	at org.apache.jasper.el.JspValueExpression.getType(JspValueExpression.java:61)
	at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:92)
	at javax.faces.component.UIInput.getConvertedValue(UIInput.java:942)
	at javax.faces.component.UIInput.validate(UIInput.java:868)
	at javax.faces.component.UIInput.executeValidate(UIInput.java:1072)
	at javax.faces.component.UIInput.processValidators(UIInput.java:672)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at javax.faces.component.UIForm.processValidators(UIForm.java:234)
	at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:447)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:240)
	at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:463)
	at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:71)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
	at java.lang.Thread.run(Unknown Source)
 
Zuletzt bearbeitet von einem Moderator:
T

Tomate_Salat

Gast
#{portal.user} ist bei dir null und du versuchst daraus einen Wert (vorname) zu lesen => Exception

Was hier genau schief läuft, dass user null ist kann man nur raten, oder du postest relevanten Quellcode.
 

prinzessin88

Mitglied
Das hier ist das Formular:

Java:
<!-- CONTENT anfang -->
		   				<t:div id="content" styleClass="i_content">
		    				<t:div id="text" styleClass="i_text">
								<h:panelGrid columns="3">
										
									 	<h:outputLabel for="Vorname" value="#{msg.portal_vorname}"/>
										<h:inputText value="#{portal.user.vorname}" id="Vorname"/>
										<h:outputText value=" " rendered=""/>
										<h:outputText value=" "/>					

										<h:outputLabel for="Nachname" value="#{msg.portal_nachname}"/>
										<h:inputText value="#{portal.user.nachname}" id="Nachname"/>
										<h:outputText value=" " rendered=""/>
										<h:outputText value=" "/>
	
										<h:outputLabel for="Abteilung" value="#{msg.portal_abteilung}"/>
										<h:inputText value="#{portal.user.abteilung}" id="Abteilung"/>
										<h:outputText value=" " rendered=""/>
										<h:outputText value=" "/> 

										<h:outputLabel for="Username" value="#{msg.portal_username}"/>
										<h:inputText value="#{portal.user.username}" id="Username"/>
										<h:outputText id="errorUsername" value="" rendered="" styleClass="i_fehler"/>
										<h:outputText value=" " rendered=""/>

										<h:outputLabel for="Passwort" value="#{msg.portal_passwort}"/>
										<h:inputSecret value="#{portal.user.userPWD}" id="Passwort"/>
										<h:outputText id="errorPasswort" value="" rendered="" styleClass="i_fehler"/>
										<h:outputText value=" " rendered=""/>

										<h:outputLabel for="Passwort2" value="#{msg.portal_passwort2}"/>
										<h:inputSecret value="#{portal.user.userPWD2}" id="Passwort2"/>
										<h:outputText id="errorPasswort2" value="" rendered="" styleClass="i_fehler"/>
										<h:outputText value=" " rendered=""/>

										<h:outputLabel for="Id" value="#{msg.portal_id}"/>
										<h:inputText  value="#{portal.user.eclass_company_id}" id="Id"/>
										<h:outputText value=" " rendered=""/>
										<h:outputText value=" "/>
										</h:panelGrid>
											
										<h:panelGrid columns="1">
												<h:commandButton id="abschicken" value="#{msg.portal_anmeldung_abschicken}" action="#{portal.updateLogin}">
													<h:inputHidden value=""/>
												</h:commandButton>
										</h:panelGrid>
											
											
											
									<%-- 		<h:panelGrid>
											<h:commandButton value="abschicken" action="#{portal.updateLogin}">
												
											</h:commandButton>
											<h:inputHidden value=""/>
										</h:panelGrid>	--%>
									</t:div>
			    				</t:div>
								<!-- CONTENT ende -->

Das ist der PortalHandler:

Java:
	public void updateLogin()
	
		if(user != null)
		{
			
				user = MainUser.validLogin(user);
				if(user.isValid())
				{
					user = null;
					userList = MainUser.getUserData();
					
				}
				
		}
		
		
	}
	
	
	public User getUser()
	{
		return user;
	}

	public void setUser(User user)
	{
		this.user = user;
	}

Das ist die MainUser:

Java:
public static User validLogin(User user)
	{
		user = checkLogin(user);
		
		if(user.isValid())
		{
			ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
			DBConnection dbHandler = new DBConnection(ec);
			
			try
			{
				dbHandler.openConnection("MainUser.validLogin()");
				

				String sql1= "INSERT INTO `Tabbelle` (spalte1, spalte2, spalte3, spalte4, userPWD)" +
				   "VALUES ('" + user.getVorname() + "', '" +
				   user.getNachname() + "', '" +
				   user.getAbteilung() + "', '" +
				   user.getUsername() + "', '" +
				   user.getUserPWD() + "') " +
				   ";";
				
				

				String sql6 = "UPDATE `tabelle`" +
						"SET `spalte` = '"+user.getEclass_company_id()+"'" +
						"SET `spalte` = '"+user.getLastUserId()+"'" +
						"WHERE `spalte` = '"+user.getLastUserId()+"'";
				
				dbHandler.executeInsert(sql1);
				
				ResultSet rs = dbHandler.executeSelect("SELECT LAST_INSERT_ID();");
				if(rs.next())
				{
					int lastUserId = rs.getInt("LAST_INSERT_ID()");
					
					user.setLastUserId(lastUserId); 
				
				}
				
				dbHandler.executeUpdate(sql6);
				
				
			}
			catch (Exception e) {
				// TODO: handle exception
			}
			finally
			{
				dbHandler.closeConnection("MainUser.validLogin()");
			}
		}
		return user;
	}
	
	private static User checkLogin(User user)
	{
		user.resetValid();
		user.isValid();
		
		if(user.getUsername()== null || user.getUsername().equals("") || user.getUsername().equals("null"))
		{
			user.setValidUsername();
		}
		
		if (user.getUserPWD() == null || user.getUserPWD().equals("") || user.getUserPWD().equals("null"))
		{
			user.setValidUserPWD();
		} 
		if (user.getUserPWD2() == null || user.getUserPWD2().equals("") || user.getUserPWD2().equals("null"))
		{
			user.setValidUserPWD2();
		} 
		if (!user.getUserPWD().equals(user.getUserPWD2()))
		{
			user.setValidUserPWDungleich();
		} 
		if (user.getEclass_company_id()< 0)
		{
			user.setValidEclassCompanyId();
		}
		return user;
	}
 
T

Tomate_Salat

Gast
ohne alles gelesen zu haben, aber was mir auffällt: wieso setzt du user=null wenn er valid ist?
 
T

Tomate_Salat

Gast
hab noch nicht viel mit jsf gearbeitet, aber setze vllt mal um dein formular:
[c]<h:form><!-- DEIN FORMULAR --></h:form>[/c]
und teste es dann mal.
 
T

Tomate_Salat

Gast
ups, ja denkfehler, dass hast du wohl schon beim ersten laden der Seite, dass habe ich nicht beachtet. [c]getUser()[/c] wird da wohl null zurückliefern. Prüfe mal ab, ob user==null ist (in der getUser()) und wenns zutrifft: erstelle dir mal ein leeres neues User-Objekt und lass dieses zurückgeben.
 

prinzessin88

Mitglied
Hi!
also der user ist null und ich habe dann auch ein neues objekt erstellt.
dann tritt halt nciht der andere fehler auf aber es steht halt das user == null und dann funktioniert es nicht.
 
T

Tomate_Salat

Gast
setz doch im user-objekt ein flag, welches dir angibt, dass der Benutzer noch nicht zulässig/neu angelegt wurde und prüfe dieses ab.
 

Ähnliche Java Themen

Neue Themen


Oben