# Duplicate Bean Name (Tomcate 5.X, JDK 1.5)



## nauni77 (8. Mai 2006)

Hallo,
ich benutzte den Tomcat 5.X und schreibe eine Webanwendung.

Meine Struktur sieht vereinfacht folgendermaßen aus:
allgemeineJSP.jsp

spezifischeJSP_1.jsp
spezifischeJSP_....jsp
spezifischeJSP_n.jsp

allgemeineJSP funktioniert vom Prinzip folgendermaßen:

```
<%
  if (Parameterkonstelation X) {
%>
    <%@ include file="spezifischeJSP_1.jsp"%>
<%
  } else if (Parameterkonstelation Y) {
%>
    <%@ include file="spezifischeJSP_1.jsp"%>
<%
  } else if (................und so weiter ...
```

Innerhalb der einzelnen spezifischeJSP_X.jsp verwende ich zum Beispiel

```
<jsp:useBean id="sysVar" class="dbM.steuerung.Systemvariablen" scope="session" />
```
um Objekte/Variablen zu erzeugen.

Leider kommt es zu einem "Duplicate bean name" Fehler, sobald ich in zwei verschiedenen spezifische JSP_X.jsp den gleichen Namen für eine Bean verwende. Dies ist für mich unlogisch, da nur die eine oder andere JSP eingebunden wird während einem Aufruf.

Kann mir jemand erklären woran das liegt (wegen dem Container, welcher die Objekte über einen Aufruf hinweg am Leben erhält?) und wie ich Abhilfe schaffe ohne mir für jede "spezifischeJSP_X.jsp" andere Variablennamen für die gleiche Klasse ausdenke. Oder alle Klassen in dem "Main-JSP" erstelle.

Wie ist das Standard-Vorgehen??? Definieren der Variablen/Objekte in der "Main-JSP"?

tia

Oli


----------



## nauni77 (13. Mai 2006)

Hallo,
denke ich habe jetzt die Lösung für das Problem gefunden. Durch die Anweisung


```
<jsp:useBean id="sysVar" class="dbM.steuerung.Systemvariablen" scope="session" />
```

wird keine Variable für den Aufruf erstellt, sondern eine (wie in der Anweisung drin steht) Session-Variable. Möchte nun eine JSP, welche eingebunden wird, eine Session-Variable in dieser Session erstellen, dann würde dieser Bezeichner zweimal existieren. Daher ist es logisch, dass dies nicht funktioniert.

Merci,

Oli


----------



## mlange8801 (14. Mai 2006)

> Leider kommt es zu einem "Duplicate bean name" Fehler, sobald ich in zwei verschiedenen spezifische JSP_X.jsp den gleichen Namen für eine Bean verwende. Dies ist für mich unlogisch, da nur die eine oder andere JSP eingebunden wird während einem Aufruf.



Die @ include inkludiert den Inhalt wenn die jsp kompiliert wird.
Die kompilierte Jsp sieht dann etwas so aus:

```
<% 
  if (Parameterkonstelation X) { 
inhalt der jsp x
  } else if (Parameterkonstelation Y) { 
inhalt der jsp y
  } else if (................und so weiter ...
```
Die Jsps werden dementsprechend alle eingebunden, nur abhängig von der Verzweigung der jeweilige Inhalt ausgegeben.
http://java.sun.com/products/jsp/syntax/1.2/syntaxref129.html

Für die dynamische Seiten würde ich die <jsp:include> verwenden.
http://java.sun.com/products/jsp/tags/11/syntaxref1112.html


----------

