# Problem mit Anzeige zweier JSP's



## slaytallicer (20. Dez 2008)

Hallo,

ich habe ein Problem mit der Anzeige von zwei verschiedenen JSP's und weiß nicht, woran es liegen könnte. Eclipse zeigt mir keine Fehler an, der Code der beiden Seiten und der "zugehörigen" Java-Klassen ist im Prinzip identisch, nur dass die Variablen bei der einen Seite zur "Rubrik" gehören, und die Variablen der zweiten Seite zur "Unterrubrik".
Allerdings lässt sich nur die erste Seite anzeigen, bei der zweiten Seite bekomme ich Fehlermeldungen in der Konsole, wenn ich die Seite über den Browser aufrufen will.

Der Code der funktionierenden Seite:

```
<%@page import="edu.ba.gruppe2.Constants"%>
<%@page import="edu.ba.gruppe2.shop.ShopModul"%>


<%@page import="edu.ba.gruppe2.shop.CmdCreateUnterrubrik"%><form ACTION="<%=Constants.URL_BIN%>" METHOD="get">
<%@page import="edu.ba.gruppe2.shop.model.Rubrik" %>
<%@page import="edu.ba.gruppe2.shop.model.Unterrubrik" %>
<%@page import="edu.ba.api.IErrorMessage"%>
<%@page import="java.util.*"%>

<jsp:includepage="messageSection.jsp" flush="true" />

<input TYPE="hidden" NAME="command" VALUE="<%=request.getParameter("command")%>">
<input TYPE="hidden" NAME="module" VALUE="<%=ShopModul.NAME%>">
<input TYPE="hidden" NAME="action" VALUE="<%=ShopModul.ACTION_CREATE_UNTERRUBRIK%>">

<table>	
<% CmdCreateUnterrubrik cmd = (CmdCreateUnterrubrik) request.getAttribute(CmdCreateUnterrubrik.NAME);%>
	<tr>		
		<td>Unterrubrik:</td>
		<td><input TYPE="Text" NAME="<%=CmdCreateUnterrubrik.PARAM_UNTERRUBRIKTEXT %>" VALUE="" SIZE="50"
			MAXLENGTH="50"></td>
	</tr>
	<tr>		
	<td>Gehört zu Rubrik:</td>
  <td> <select name="<%=CmdCreateUnterrubrik.PARAM_RUBRIK %>">
   <%for(Iterator<Rubrik> iter = cmd.getRubriken().listIterator(); iter.hasNext();) {
      Rubrik rubrikauswahl = iter.next();%>
   <option value="<%=rubrikauswahl.getId()%>"<%if (cmd.getUnterrubrik() != null && cmd.getUnterrubrik().getRubrik() != null && rubrikauswahl.getId()==cmd.getUnterrubrik().getRubrik().getId()) out.print(" selected"); %>><%=rubrikauswahl.getRubriktext()%></option>
   <%}%>  
   </select></td>				
				
	

	</tr>
	<tr>
		<td colspan="2"><input TYPE="Submit" VALUE="CREATE"></td>
	</tr>

</table>
</form>
```

hier der Code der nicht funktionierenden Seite:

```
<%@page import="edu.ba.gruppe2.Constants"%>
<%@page import="edu.ba.gruppe2.shop.ShopModul"%>


<%@page import="edu.ba.gruppe2.shop.CmdCreateUnterunterrubrik"%><form ACTION="<%=Constants.URL_BIN%>" METHOD="get">
<%@page import="edu.ba.gruppe2.shop.model.Unterrubrik" %>
<%@page import="edu.ba.gruppe2.shop.model.Unterunterrubrik" %>

<%@page import="edu.ba.api.IErrorMessage"%>
<%@page import="java.util.*"%>

<jsp:includepage="messageSection.jsp" flush="true" />


<input TYPE="hidden" NAME="module" VALUE="<%=ShopModul.NAME%>">
<input TYPE="hidden" NAME="action" VALUE="<%=ShopModul.ACTION_CREATE_UNTERUNTERRUBRIK%>">

<table>	
<% CmdCreateUnterunterrubrik cmd = (CmdCreateUnterunterrubrik) request.getAttribute(CmdCreateUnterunterrubrik.NAME);%>
	<tr>		
		<td>Unterrubrik:</td>
		<td><input TYPE="Text" NAME="<%=CmdCreateUnterunterrubrik.PARAM_UNTERUNTERRUBRIKTEXT %>" VALUE="" SIZE="50"
			MAXLENGTH="50"></td>
	</tr>
	<tr>
	<td>Gehört zu Unterrubrik:</td>
  <td> <select name="<%=CmdCreateUnterunterrubrik.PARAM_UNTERRUBRIK %>">
   <%for(Iterator<Unterrubrik> iter = cmd.getUnterrubriken().listIterator(); iter.hasNext();) {
      Unterrubrik unterrubrikauswahl = iter.next();%>
   <option value="<%=unterrubrikauswahl.getId()%>"<%if (cmd.getUnterunterrubrik() != null && cmd.getUnterunterrubrik().getUnterrubrik() != null && unterrubrikauswahl.getId()==cmd.getUnterunterrubrik().getUnterrubrik().getId()) out.print(" selected"); %>><%=unterrubrikauswahl.getUnterrubriktext()%></option>
   <%}%>  
   </select></td>	
	</tr>
	
	<tr>
		<td colspan="2"><input TYPE="Submit" VALUE="CREATE"></td>
	</tr>

</table>
</form>
```

Die Fehlermeldungen, die ich hierbei erhalte sind:

0.12.2008 15:12:24 org.apache.catalina.core.ApplicationDispatcher invoke
SCHWERWIEGEND: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
	at org.apache.jsp.jsp.createUnterunterrubrik_jsp._jspService(createUnterunterrubrik_jsp.java:101)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
	at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
	at org.apache.jsp.jsp.main_jsp._jspService(main_jsp.java:109)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at edu.ba.gruppe2.MainController.doGet(MainController.java:134)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
20.12.2008 15:12:24 org.apache.catalina.core.ApplicationDispatcher invoke
SCHWERWIEGEND: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
	at org.apache.jsp.jsp.createUnterunterrubrik_jsp._jspService(createUnterunterrubrik_jsp.java:101)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
	at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
	at org.apache.jsp.jsp.main_jsp._jspService(main_jsp.java:109)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at edu.ba.gruppe2.MainController.doGet(MainController.java:134)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
20.12.2008 15:12:24 org.apache.catalina.core.StandardWrapperValve invoke
SCHWERWIEGEND: Servlet.service() for servlet MainController threw exception
java.lang.NullPointerException
	at org.apache.jsp.jsp.createUnterunterrubrik_jsp._jspService(createUnterunterrubrik_jsp.java:101)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
	at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
	at org.apache.jsp.jsp.main_jsp._jspService(main_jsp.java:109)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at edu.ba.gruppe2.MainController.doGet(MainController.java:134)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)

[/list]


Ich habe herausgefunden, dass auch die zweite Seite angezeigt wird, wenn ich diesen Teil weglasse:

```
<tr>
	<td>Gehört zu Unterrubrik:</td>
  <td> <select name="<%=CmdCreateUnterunterrubrik.PARAM_UNTERRUBRIK %>">
   <%for(Iterator<Unterrubrik> iter = cmd.getUnterrubriken().listIterator(); iter.hasNext();) {
      Unterrubrik unterrubrikauswahl = iter.next();%>
   <option value="<%=unterrubrikauswahl.getId()%>"<%if (cmd.getUnterunterrubrik() != null && cmd.getUnterunterrubrik().getUnterrubrik() != null && unterrubrikauswahl.getId()==cmd.getUnterunterrubrik().getUnterrubrik().getId()) out.print(" selected"); %>><%=unterrubrikauswahl.getUnterrubriktext()%></option>
   <%}%>  
   </select></td>	
	</tr>
```

allerdings werden mir in Eclipse hierzu keinerlei Fehlermeldungen angezeig, dass etwas mit dem Code nicht passen könnte. Ich hoffe, jemand kann mir hier helfen...


----------



## HLX (21. Dez 2008)

Der Fehler entsteht erst zur Laufzeit, daher kann Eclipse auch nichts melden:


```
<% CmdCreateUnterrubrik cmd = (CmdCreateUnterrubrik) request.getAttribute(CmdCreateUnterrubrik.NAME);%>
```

Hier fragst du ein Request-Attribut ab. Das hast du sicher vorher irgendwo mit setAttbute(key, value) gesetzt. Es ist allerdings nur innerhalb des einen Requests gültig. Forderst du die Seite erneut an, ohne den Wert zu setzen, ist er null und führt in deinem Code zu einer NullPointerException, da du auf ein Null-Objekt eine Methode ausführst.

Du musst das Attribut also vor dem Anfordern der JSP-Seite immer erneut setzen. Soll das Attribut während der gesamten Benutzersitzung zur Verfügung stehen, verwendest du besser

```
request.getSession().setAttribute(key, value)
// bzw.
request.getSession().getAttribute(key)
```


----------



## slaytallicer (21. Dez 2008)

Da ich mit meinem begrenzten Wissen der Meinung war, dass evtl. die Ausdrücke zu lang sein könnten, habe ich die Rubriken je nach Ebene in Rubrik 1, Rubrik 2 und Rubrik 3 umbenannt, daher würde der Code so nicht passen. Deshalb hier die aktuellen Ausschnitte.

Das mit getSession() habe ich so in der Klasse, die das Command darstellt stehen:

```
package edu.ba.gruppe2.shop;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.hibernate.Transaction;

import edu.ba.api.AbstractCommand;
import edu.ba.api.ICommand;
import edu.ba.api.IErrorMessage;
import edu.ba.api.IMessage;
import edu.ba.api.IModule;
import edu.ba.api.Message;
import edu.ba.gruppe2.shop.model.Rubrik1;
import edu.ba.gruppe2.shop.model.Rubrik2;
import edu.ba.gruppe2.shop.model.Rubrik3;


public class CmdCreateRubrik3 extends AbstractCommand implements ICommand {

	/**
	 * Der Logger
	 */
	private Logger logger = Logger
			.getLogger(this.getClass());
	
	private Rubrik3 rubrik3 = null;
	
	private List <Rubrik1> rubrikauswahl;
	
	private List <Rubrik2> rubrik2auswahl;
	
	
	/** 
	 * Der Name dieses Commands.
	 */	
	public static final String NAME = "Rubrik3";
	
	/**
	 * Die JSP-Seite auf die mit diesem Command umgeleitet wird.
	 */
	public static final String JSP = "createRubrik3.jsp";
	
	public static final String PARAM_ID = "unterunterrubrikid";
	
	
	public static final String PARAM_Text_rubrik3 = "text_rubrik3";
	
	public static final String PARAM_RUBRIK = "rubrik";
	
	public static final String PARAM_RUBRIK2 = "rubrik2";
		
	/**
	 * Erzeugt ein neues CreateEntity-Command auf dem übergebenen Module.
	 * @param pModule Das dem Command übergordnete Module.
	 */
	public CmdCreateRubrik3(IModule pModule) {
		super(NAME, pModule);
	}
	
	/**
	 * {@inheritDoc}
	 */
	public String process(HttpServletRequest request,
			HttpServletResponse response) throws IOException, ServletException {

		List<IErrorMessage> errors = this.validate(request);
		if (errors.size() > 0) {
			// Es gab Fehler bei der Validierung des Requests!
			request.setAttribute(IErrorMessage.KEY_PROPERTYERRORS, errors);
			return JSP;
		}
		
		
		rubrik2auswahl = Rubrik2.getUnterrubriken(getSession());
		
		
		
		Transaction tx = getSession().beginTransaction();
		Rubrik3 rubrik3 = new Rubrik3();
		rubrik3.setText_rubrik3(request.getParameter(PARAM_Text_rubrik3));
		rubrik3.setRubrik2((Rubrik2)getSession().get(Rubrik2.class, Long.valueOf(request.getParameter(PARAM_RUBRIK2))));
		rubrik3.setRubrik1((Rubrik1)getSession().get(Rubrik1.class, Long.valueOf(request.getParameter(PARAM_RUBRIK))));
		
		
		Long id = (Long) getSession().save(rubrik3);
		String msg = String.format("Die Rubrik3 mit der ID %s wurde erfolgreich angelegt.", id);
		logger.info(msg);
		
		request.setAttribute(IMessage.KEY_MESSAGE, new Message(msg));
		tx.commit();
		
		

		return JSP;
	}
	
	
	
	public Rubrik3 getRubrik3(){
		return rubrik3;
	}
	
	public List<Rubrik2> getRubriken2() {
		return rubrik2auswahl;
	}
	
	public List<Rubrik1> getRubriken() {
		return rubrikauswahl;
	}
}
```

Die JSP dazu:

```
<%@page import="edu.ba.gruppe2.Constants"%>
<%@page import="edu.ba.gruppe2.shop.ShopModul"%>


<%@page import="edu.ba.gruppe2.shop.CmdCreateRubrik3"%><form ACTION="<%=Constants.URL_BIN%>" METHOD="get">
<%@page import="edu.ba.gruppe2.shop.model.Rubrik2" %>
<%@page import="edu.ba.gruppe2.shop.model.Rubrik3" %>

<%@page import="edu.ba.api.IErrorMessage"%>
<%@page import="java.util.*"%>

<jsp:includepage="messageSection.jsp" flush="true" />


<input TYPE="hidden" NAME="module" VALUE="<%=ShopModul.NAME%>">
<input TYPE="hidden" NAME="action" VALUE="<%=ShopModul.ACTION_CREATE_UNTERUNTERRUBRIK%>">

<table>   
<% CmdCreateRubrik3 cmd = (CmdCreateRubrik3) request.getAttribute(CmdCreateRubrik3.NAME);%>
   <tr>      
      <td>Unterrubrik:</td>
      <td><input TYPE="Text" NAME="<%=CmdCreateRubrik3.PARAM_Text_rubrik3 %>" VALUE="" SIZE="50"
         MAXLENGTH="50"></td>
   </tr>
   <tr>
   <td>Gehört zu Unterrubrik:</td>
  <td> <select name="<%=CmdCreateRubrik3.PARAM_RUBRIK2 %>">
   <%for(Iterator<Rubrik2> iter = cmd.getRubriken2().listIterator(); iter.hasNext();) {
      Rubrik2 rubrik2auswahl = iter.next();%>
   <option value="<%=rubrik2auswahl.getId()%>"<%if (cmd.getRubrik3() != null && cmd.getRubrik3().getRubrik2() != null && rubrik2auswahl.getId()==cmd.getRubrik3().getRubrik2().getId()) out.print(" selected"); %>><%=rubrik2auswahl.getUnterrubriktext()%></option>
   <%}%> 
   </select></td>   
   </tr>
   
   <tr>
      <td colspan="2"><input TYPE="Submit" VALUE="CREATE"></td>
   </tr>

</table>
</form>
```

Komisch finde ich, dass das Problem immer erst auf Eben der "Unterunterrubrik" auftaucht und auf den höheren Ebenen funktioniert. Ich glaube, ich übersehe da immer etwas...


----------



## HLX (21. Dez 2008)

Das ändert nichts daran. Dein Problem dürfte sein, dass das Request-Attribut CmdCreateUnterrubrik.NAME leer ist, also nicht von dir gesetzt wurde. Daher ist cmd an dieser Stelle null:

```
CmdCreateUnterrubrik cmd = (CmdCreateUnterrubrik) request.getAttribute(CmdCreateUnterrubrik.NAME);
```

Damit cmd an dieser Stelle einen Wert hat, muss vor jedem Anfordern der JSP-Seite der Wert mit folgendem Befehl explizit gesetzt werden:

```
request.setAttribute(CmdCreateUnterrubrik.NAME, meinObjekt);
```


----------



## slaytallicer (26. Dez 2008)

Sorry für die späte Antwort erstmal...

Das Problem lag darin, dass ich das Auswahlfeld an der falschen Stelle im Code plaziert hatte, nämlich erst, nachdem die JSP aufgerufen wurde...

Trotzdem Danke!


----------

