# Wie kann ich den XML-Inhalt mit dem Klicken auf den Hyperlink (a-Tag) auf der nächsten Seite ansehen



## ebruss17 (18. Nov 2014)

Hallo Community,

ich habe in einer DB2-datenbank XML-Strukturen in der letzten Tabellen-Spalte angelegt. Nun möchte ich, dass bei der Ausgabe der ganzen Tabelle, (die ich mit JavaServer Pages realisiert habe, sodass die ganze Tabelle momentan als Webseite ausgegeben wird), innerhalb dieser XML-Spalte nur das Wort "Klicken" stehen soll, das ich auch schon hinbekommen habe und wenn man dann auf diesen Hyperlink draufklickt, soll auf der nächsten Seite der XML-Inhalt ausgegeben werden  Mein Code dazu:




```
<%
							while (kunden.next()) {
						%>

						<tr>
							<%
								for (int i = 1; i <= numberOfColumns; i++) {
									
									if( i != numberOfColumns ) {

							%>
							<td><%=kunden.getString(i)%></td>
							
							<%
								} else {
							%>
							<td><a href="<%kunden.getString(i); %>"><%kunden.getString(i);%>Klicken</a></td>
						</tr>

						<%
							}
							} } } catch (SQLException e) {

							}
						%>
```


Im Moment ist es noch so, dass beim Klicken auf den Hyperlink nichts geschieht (also das Klicken bringt mich nicht in eine andere Seite, wo ich den XML-Inhalt sehen kann.)


----------



## Joose (18. Nov 2014)

ebruss17 hat gesagt.:


> Im Moment ist es noch so, dass beim Klicken auf den Hyperlink nichts geschieht (also das Klicken bringt mich nicht in eine andere Seite, wo ich den XML-Inhalt sehen kann.)



Was bekommst du bei "kunden.getString(i)"?

Ich nehme an dein Link funktioniert nicht weil es kein Dokument gibt welches als Inhalt dein XML hat, bzw. irgendwo hin verlinkst.
Du musst zu einer passenden Ressource linken bzw. auf eine Seiter weiterleiten welche sich anhand des Keys den XML Part aus der DB holt und anzeigt.


----------



## ebruss17 (18. Nov 2014)

kunden.getString(i) zeigt und gibt mir nichts zurück...

wenn ich aber 


```
<td><a href="<%=kunden.getString(i)%>"><%kunden.getString(i);%>Klicken</a></td>
```

mache, bekomme ich auf der jeweiligen Spalte nicht mehr das Wort "Klicken", sondern den XML-Inhalt ausgegeben und wenn ich auf den XML-Inhalt klicke bekomme ich auf der folgenden Seite FileNotFoundException. Das sollte aber nicht so sein, sondern erst wenn ich auf "Klicken" klicke, soll es mir den XML-Inhalt ausgeben.


----------



## Joose (18. Nov 2014)

ebruss17 hat gesagt.:


> mache, bekomme ich auf der jeweiligen Spalte nicht mehr das Wort "Klicken", sondern den XML-Inhalt ausgegeben



Dann gibt dir "kunden.getString(i)" das XML zurück und dieses verwendest du als Link Text.



ebruss17 hat gesagt.:


> und wenn ich auf den XML-Inhalt klicke bekomme ich auf der folgenden Seite FileNotFoundException.



Weil laut deinem Code der Link zu "kunden.getString(i)" weiterleiten soll, nur gibt es keine Datei mit diesem Namen 



ebruss17 hat gesagt.:


> Das sollte aber nicht so sein, sondern erst wenn ich auf "Klicken" klicke, soll es mir den XML-Inhalt ausgeben.



Wie oben schon gesagt entweder stellst du das XML File direkt zur Verfügung -> die DB würde nicht das XML direkt speichern sondern nur den Pfad zum XML am Webspace
Oder du verlinkst auf eine andere JSP in welcher du einen übergebenen Parameter verarbeitest und dir das XML aus der DB holst und anzeigst.


----------



## ebruss17 (18. Nov 2014)

Die letzte Variante hört sich gut an, nun wie das gelöst werden soll, habe ich keine Ahnung bezüglich "übergebenen Parameter verarbeiten". ODER das könnte man vielleicht mit einem XML-Viewer lösen oder?


----------



## Joose (18. Nov 2014)

Leider weiß ich nicht was JSP hier alles anbietet, aber eine Möglichkeit Parameter zu übergeben wäre die URL. 
Sprich dein Link leitet dich auf Seite XY (eine deiner Seiten) dort wird der Parameter aus der URL ausgelesen und ...... (rest wie oben beschrieben).

Wie soll es denn mit einem XML Viewer gehen? Wenn du eine Idee hast probiere sie einfach mal aus  das geht schneller als im Forum darüber zu diskutieren. Sollte es nicht klappen auch kein Problem in der Zwischenzeit hat jemand schon eine Alternative im Forum genannt und fürs nächste Mal weißt du es gleich das es nicht geht.


----------



## ebruss17 (18. Nov 2014)

Meinst du das etwa so?? :


```
<td><a href="XML.jsp"><%kunden.getString(i);%>Klicken</a></td>
```


Und was sollte noch hinzugefügt werden??


----------



## Joose (18. Nov 2014)

ebruss17 hat gesagt.:


> Meinst du das etwa so?? :



Naja fast

*<a href="XML.jsp">*

Genau, nur vielleicht noch mit "?xml=[id des datensatz]" ergänzen außer JSP bietet hier besser Möglichkeiten an Parameter zu übergeben.

*<%kunden.getString(i);%>Klicken*

Du willst dass der Text "Klicken" dein Link Text ist, warum lässt du hier noch immer dein XML ausgeben?
Welchen Sinn soll das haben?


----------



## ebruss17 (18. Nov 2014)

Habe das jetzt mal so gemacht:

Ich glaub, habe es mir "?xml..... " nicht so ganz verstanden 


```
<td><a href="?xml=[Lieferantinformationen]XML.jsp">Klicken</a></td>
```


----------



## Joose (18. Nov 2014)

Parameter werden immer an die URL *angehängt* sprich diese Information kommt nach der Angabe der Zielseite.


----------



## ebruss17 (18. Nov 2014)

Bezieht sich [id des datensatzes] auf den Namen der Datenbanktabellenspaltenname? Oder habe ich das jetzt falsch verstande?


----------



## Joose (18. Nov 2014)

Nein auf einen Wert durch welchen du den entsprechenden Datensatz eindeutig identifizieren kannst!

In deiner XML.jsp musst du ja das XML zu einem spezifischen Datensatz suchen, dazu wirst du einen entsprechenden Identifier brauchen (ID, Key Werte, ....)
Und genau diesen Identifier musst du eben als Parameter mitgeben


----------



## ebruss17 (18. Nov 2014)

OH jeeeeeee :/ Kannst du mir bitte einen Beispiel dazu geben??


----------



## Joose (18. Nov 2014)

Um einen Datensatz in einer Tabelle eindeutig zu identifizieren -> Primary Key.
Dieser PrimaryKey kann eine Zahl, ein Datum oder ein String sein und aus einer oder mehreren Spalten bestehen.

Und eben diese Daten des PrimaryKeys musst du übergeben. So kannst du in der XML.jsp eindeutig festlegen von welchem Datensatz das XML angezeigt werden soll.


----------



## ebruss17 (18. Nov 2014)

Also innerhalb der datenbanktabelle, wo meine XML-Spalte enhalten ist, gibt es eine PrimaryKey-Spalte vom Typ Int, die (lf_ID) benannt wurde. kommt ja jetzt 

							<td><a href="XML.jsp?xml=[lf_ID]">Klicken</a></td>
??


----------



## Joose (18. Nov 2014)

Jap nur ohne "[" bzw. "]", diese Klammern sollten nur veranschaulichen das hier ein Wert hinkommt.


----------



## ebruss17 (18. Nov 2014)

okay habe es jetzt so umgestellt:


```
<td><a href="XML.jsp?xml=lf_ID">Klicken</a></td>
```


Was muss ich jetzt im nächsten Schritt innerhalb der "XML.jsp"-Datei machen? Und vorallem vielen vielen Dank, dass du so hilfsbereit bist.


----------



## Joose (18. Nov 2014)

ebruss17 hat gesagt.:


> ```
> <td><a href="XML.jsp?xml=lf_ID">Klicken</a></td>
> ```



Warum den Spaltennamen? In der jeweiligen Zeile den entsprechenden Wert der Spalte "lf_ID" nehmen!



ebruss17 hat gesagt.:


> Was muss ich jetzt im nächsten Schritt innerhalb der "XML.jsp"-Datei machen? Und vorallem vielen vielen Dank, dass du so hilfsbereit bist.



Bei aller Liebe finde ich sollte hier auch die entsprechende Eigeninitiative gezeigt werden.
In dem XML.jsp musst du eben nun den Parameter auslesen ein entsprechende SELECT ausführen und dir den XML Content aus der DB holen und anzeigen.


----------



## ebruss17 (19. Nov 2014)

so:


```
<td><a href="XML.jsp?xml=86">Klicken</a></td>
```

Die ID "86" ist als Primärschlüssel in der Lieferung-Tabelle enthalten. ABER es gibt noch andere ID's in der jeweiligen Lieferung-Tabelle, die XML-Strukturen enthalten wie z.b. die ID 85, 84, 63 usw. Könnte ich das denn nicht irgendwie dynamisch umsetzen?


----------



## Joose (19. Nov 2014)

Natürlich geht das.



> Nun möchte ich, dass bei der Ausgabe der ganzen Tabelle, (die ich mit JavaServer Pages realisiert habe, sodass die ganze Tabelle momentan als Webseite ausgegeben wird)



Du kannst ja schon Tabelleninhalte ausgeben, ich nehme an hier arbeitest du ebenfalls dynamisch


----------



## ebruss17 (19. Nov 2014)

Dürfte ich bei aller Liebe fragen, wie ich das konkret in diesem Beispiel umsetzen könnte?


----------



## Joose (19. Nov 2014)

Du hast ja deine Tabelle schon ausgegeben. Das Problem es steht überall eben "xml=86" und du willst diese ID natürlich dynamisch machen damit in jeder Zeile die richtige ID steht.

Deine Tabelle wirst du ja dynamisch aufgebaut haben oder? Solange "kunden.next()" true ist fügst du eine TR hinzu. Dann lies doch die ID von "kunden" aus?!?


----------



## ebruss17 (19. Nov 2014)

Hab es jetzt so umgesetzt:


```
<td><a href="XML.jsp?xml=<%=kunden.getString("lf_ID")%>">Klicken</a></td>
```

Nun steht beim Klicken auf das Wort "Klicken" auf der nächsten Seite immer die zugehörige ID in der URL drinnen 

Sooo jetzt nun zur Datei "XML.jsp".... Was sollte im ersten Schritt gemacht werden? Da ich JavaServer Pages nur momentan das erste Mal angewendet habe, komme ich da nicht so zügig voran und entschuldige mich für die ständigen Fragen


----------



## Joose (19. Nov 2014)

1) Lies die ID aus der URL aus

2) Führe das passendes SELECT Statement aus

3) Baue dir deine View zusammen

4) fertig

Bis auf Punkt 1 hast du alles schon auf der anderen Seite realisiert


----------



## ebruss17 (19. Nov 2014)

Die "XML.jsp" sieht nun so aus:


```
<body>
	<%
		String id = request.getParameter("xml");

		int zahl;

		try {
			zahl = Integer.parseInt(id);
		} catch (NumberFormatException e) {
		}
	%>
</body>
```

Wie könnte eine passende SELECT-Anweisung dazu denn aussehen?


----------



## Joose (19. Nov 2014)

Woher soll ich denn wissen wie das SELECT aussehen sollte?
Du weißt auf welche Datenbanktabelle du zugreifen willst und welche Daten du abfragen willst. Dem entsprechend bastelst du dir dein SQL Select Statement zusammen.


----------



## ebruss17 (19. Nov 2014)

okay aber der obere Code (d.h. Auslesen der ID aus der URL) ist so korrekt?


----------



## Joose (19. Nov 2014)

Probiere es einfach aus indem du ein Dummy Textfield hinzufügst und dort den von dir ausgelesenen Parameter ausgeben lässt


----------



## ebruss17 (19. Nov 2014)

So oder??


```
<textarea cols="35" rows="4"> 
   <%=id%>
</textarea>
```


----------



## Joose (19. Nov 2014)

Probiere es aus 
In der Zwischenzeit wo du auf eine Antwort wartest wäre es sich ausgegangen einfach einmal das Programm zu starten und zu testen 
Wie hast du auf der anderen Seite denn Sachen ausgegeben?


----------



## ebruss17 (19. Nov 2014)

okay im Textfeld wird immer die richtige jeweilige ID ausgegeben GOTT sei Dank . Wie kombiniere ich das jetzt die ID mit der Ausgabe der XML-Struktur mit ihren Inhalten?? Oder soll ich beim Selektieren einfach nur die XML-Spalte auswählen??


----------



## Joose (19. Nov 2014)

Hole dir nur die Daten aus der DB, welche du auch wirklich anzeigen willst bzw. für die Verarbeitung brauchst.


----------



## ebruss17 (19. Nov 2014)

Ich habe das mal jetzt so umgesetzt:


```
<% while (kunden.next()){ %>
	
	<p> 
   <%=kunden.getString("Lieferantinformationen")%>
</p>
	<%
		}
	%>
```

Die Datenbanktabellenspalte "Lieferantinformationen" bezieht sich auf die XML-Spalte in der Datenbanktabelle. In diesem Fall werden aber alle XML-INhalte auf der nächsten Seite angezeigt, ich möchte aber, dass nur der XML-Inhalt der jeweiligen ID-Wert angezeigt wird, je nachdem auf welchen ich geklickt habe ....


----------



## Joose (19. Nov 2014)

Wie gesagt hole dir nur die Daten welche du brauchst.
Wozu hast du dir die ID als Parameter übergeben lassen? Damit du im SQL Select speziell nur den Datensatz für die EINE ID ausliest.


----------



## ebruss17 (19. Nov 2014)

> Wozu hast du dir die ID als Parameter übergeben lassen? Damit du im SQL Select speziell nur den Datensatz für die EINE ID ausliest.



Und wie mache ich das im SQL-Select? In meinem Fall hole ich die XML-Spalte "Lieferantinformationen" raus. Was mach ich denn falsche und wie muss das korrekt sein? Fast fertig mit der entsprechenden Aufgabe... bitte um HILFEEE


----------



## Joose (19. Nov 2014)

"SELECT * FROM Tabelle" -> selektiert dir alle Daten einer Tabelle
"SELECT ID, Text FROM Tabelle" -> selektiert dir ID und Text von allen Datenzeilen

SQL bietet dir die Möglichkeit diese SELECT mit Hilfe einer WHERE Bedingung zu "filtern".


Nein ich werde dir kein Beispiel und ähnliches liefern, lies dich bitte in das Thema SQL ein! 
Wenn du eine "Technik" verwenden willst (in diesem Fall Datenbanken und SQL) dann musst du dir eben die entsprechenden Grundlagen aneignen.
Dabei können wir nur insofern helfen als das wir Unklarheiten beseitigen, dazu muss es aber erst mal konkrete Fragen geben.
Und diese kannst du erst stellen wenn du dich mit diesem Thema befasst hast.


----------



## ebruss17 (19. Nov 2014)

Geht das in die richtige Richtung?


```
selectKunden = connection
		.prepareStatement("SELECT lf_ID, Lieferantinformationen FROM Lieferant WHERE lf_ID = ");
```

Mit SQL kenne ich mich relativ gut aus, ABER ich bin gerade verwirrt wegen der Parametergeschichte und weiss nciht, wie ich die ID mit der XML-Spalte kombinieren soll...


----------



## Joose (19. Nov 2014)

Wie schon weiter oben gesagt, probiere deine Ideen einfach aus! Schreibe deinen Code und teste ihn, sollte etwas nicht klappen dann stelle eine konkrete Frage mit Fehlerbeschreibung etc.


----------



## ebruss17 (19. Nov 2014)

Mit SQL kenne ich mich relativ gut aus, ABER ich bin gerade verwirrt wegen der Parametergeschichte und weiss nciht, wie ich die ID mit der XML-Spalte kombinieren soll...


----------



## Joose (19. Nov 2014)

Ich sehe das Problem nicht, wenn du dich mit SQL relativ gut auskennst sollte das Erstellen/Definieren des passenden SELECT Statement mit der passenden WHERE Bedingung kein Problem sein.


----------



## ebruss17 (19. Nov 2014)

Ich habe es so gemacht, aber wird eine NullPointerException geworfen:


```
selectKunden = connection.prepareStatement("SELECT lf_ID, Lieferantinformationen FROM Lieferant WHERE lf_ID = \"id\"");
```

Habe versucht der lf_ID den ausgelesenen Parameter zu übergeben....


----------



## Joose (19. Nov 2014)

ebruss17 hat gesagt.:


> eine NullPointerException geworfen



Ohne StackTrace und Code lässt sich dazu nur sagen:
Du greifst auf ein Objekt zu welches nicht initialisiert wurde (daher null ist). Der StackTrace verrät dir genau die Zeile wo der Fehler passiert, suche diese Zeile und überlege dir warum das Objekt "null" ist und wie du es beheben kannst.



ebruss17 hat gesagt.:


> ```
> selectKunden = connection.prepareStatement("SELECT lf_ID, Lieferantinformationen FROM Lieferant WHERE lf_ID = \"id\"");
> ```
> 
> Habe versucht der lf_ID den ausgelesenen Parameter zu übergeben....



Du musst einfach nur Strings verketten -> das gehört zu den einfachsten Java Grundlagen.


----------



## ebruss17 (19. Nov 2014)

ich habe es nun so verucht zu lösen klappt aber immernoch nicht:

```
selectKunden = connection.prepareStatement("SELECT lf_ID, Lieferantinformationen FROM Lieferant WHERE lf_ID = 'id' ");
```

kommt aber ein SQLDataException...


----------



## Joose (19. Nov 2014)

Eine Exception kommt normalerweise nicht allein 
Es steht immer eine Meldung dabei und manchmal sogar der StackTrace!

Dein SQL Statement ist falsch, du musst natürlich den Wert den du aus der URL einliest verwenden.


----------



## JavaMeister (19. Nov 2014)

Ich bin gespannt nach wievielen hundert Beiträgen der Thread in einer Lösung findet.

Nicht schlecht nach weniger als 12 Stunden herauszubekommen mit perfekten Try and Error, wie man GET oder POST Parameter übergibt. Ich mein das ist nichtmal JSP spezifisch.

In der Zeit hätte man Locker das von mir im anderen Thread empfohlene Buch durchgelesen... Und man hätte wenigstens Basiswissen. Aber nein, man quält sich hier durch "Ist das so richtig?" "Und so?" Und wenn ich das so mache??

Was ist das denn? Dafür ist das Forum weder ausgelegt noch gedacht.


----------



## ebruss17 (20. Nov 2014)

okay ich habe jetzt es mit "zahl" probiert. 


```
<%
		String id = request.getParameter("xml");

		int zahl;

		try {
			zahl = Integer.parseInt(id);
		} catch (NumberFormatException e) {
		}
	%>

	<%!public class Kunde extends HttpServlet {

		String url = "jdbc:db2://localhost:50000/mysample";
		String user = "db2admin";
		String password = "forever2007?";

		Connection connection = null;
		PreparedStatement selectKunden = null;
		ResultSet resultSet = null;

		public Kunde() {

			try {

				connection = DriverManager.getConnection(url, user, password);

				selectKunden = connection
						.prepareStatement("SELECT lf_ID, Lieferantinformationen FROM Lieferant WHERE lf_ID ="
								+ zahl);

			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
```

Aber die Variable "zahl" kann nicht in einer Variable aufgelöst werden stehht jetzt im SELECT-Statement....


----------



## Joose (20. Nov 2014)

Es ist immer praktisch wenn du zwar probierst einen Fehler zu beschreiben aber nicht die Fehlermeldung und StackTrace kopierst 
Mach es dir ja nicht einfach 

Ich nehme an "lf_ID" hat einen Varchar oder Char als Datentyp, daher muss im WHERE Teil auch mit einem Varchar/Char verglichen werden.
Aber bei dem relativ guten SQL Wissen sollte man das eigentlich selbst wissen.


----------



## ebruss17 (20. Nov 2014)

lf_ID hat in der Datenbanktabelle den Typ "INT"


----------



## ebruss17 (20. Nov 2014)

"request" kann im SELECT-STatement ebenfalls nicht aufgelöst werden, also ich kann das ganze nicht mal starten, damit ich den StackTrace hierher kopieren könnte, was genau der Fehler hierbei ist.

Mein Code:


```
selectKunden = connection.prepareStatement("SELECT lf_ID, Lieferantinformationen FROM Lieferant WHERE lf_ID ='" + request.getParameter("xml") + "' ");
```

:lol:


----------



## Joose (20. Nov 2014)

Dann kann man dir nicht weiterhelfen wenn du nicht bald man anfängst dir unsere Beiträge durchzulesen und Kritik anzunehmen!

Wenn du einen Fehler hast dann musst du eben Fehlermeldung, StackTrace und Code welcher den Fehler produziert posten.
Und bevor du das machst bemühst du zuerst Google und schaust ob nicht jemand anderes schon eine Lösung zu Fehler X gefunden hat.


[EDIT]
Ja das ist auch logisch, du definierst eine Klasse Kunde in welcher du die Variable "zahl" bzw. "request" verwenden willst.
"zahl" und "request" sind aber außerhalb der Klasse in einem anderen Kontext definiert und daher nur dort verfügbar.
Da ich mich mit jsp nicht gut auskenne kann ich dir hierbei nicht weiterhelfen.
[/EDIT]


----------



## ebruss17 (20. Nov 2014)

Da kommt diese Fehlermeldung:

JSP Processing Error
HTTP Error Code:   500

Error Message:

JSPG0049E: /XML.jsp failed to compile : 
JSPG0091E: An error occurred at line: 55 in the file: /XML.jsp
JSPG0093E: Generated servlet error from file: /XML.jsp 
C:\Users\Ebru\Ebru\WebSphere\AppServer\profiles\AppSrv01\temp\4061L3AGG4RNode01\server1\EJBCounterSampleEE6EAR\MDBSampleWeb.war\_XML.java : 68 : request cannot be resolved


----------



## ebruss17 (20. Nov 2014)

Ich hatte auch schon versucht gehabt, dass ich das Ganze in die Klasse mitrein nehme, da kann "request" trotzdem nicht aufgelöst werden. :/

Hier mein Code:

```
<%!public class Kunde extends HttpServlet {

		String url = "jdbc:db2://localhost:50000/mysample";
		String user = "db2admin";
		String password = "forever2007?";

		Connection connection = null;
		PreparedStatement selectKunden = null;
		ResultSet resultSet = null;

		String id = request.getParameter("xml");

		int zahl;
		zahl = Integer.parseInt(id);


		public Kunde() {

			try {

				connection = DriverManager.getConnection(url, user, password);

				selectKunden = connection
						.prepareStatement("SELECT lf_ID, Lieferantinformationen FROM Lieferant WHERE lf_ID ='" + zahl + "' ");

			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
```


----------



## Joose (20. Nov 2014)

Ja weil der Compiler nicht weiß woher "request" kommt, was das ist und was er damit machen soll.
Wie gesagt keine Ahnung wie man das bei JSP löst, warum lässt du die Klasse nicht weg (wozu brauchst du sie überhaupt?) und schreibst stattdessen einfach ganz normal deinen Code um das SELECT auszuführen?


----------



## ebruss17 (20. Nov 2014)

habe es jetzt ohne die Klasse gemacht und funktioniert problemlos  Nun die ganze XML-Geschichte wird aber jetzt als Text ausgegeben, d.h. noch ohne irgendwelche XML-Struktur nur nackt als reiner Text, wie könnte ich denn die XML-Sachen mit ihrere Struktur ausgeben, d.h. mit Tags und Inhalten dazu


----------



## Joose (20. Nov 2014)

Leider verstehe ich das Problem nicht. XML ist nichts anderes als ein Text welcher eben Tags beinhaltet um eine Struktur darstellen zu können.
Ein Beispiel zu liefern ist auch immer praktisch.


----------



## ebruss17 (20. Nov 2014)

Das XML sieht im Original so aus:

<Details>P8 Content Platform Engine 5.2.1.0 
Content Engine Build dap521.234 
Configuration Manager Build cm521.058 
Bulk Import Build cebi521.009 
Content Search Services Client 521 v 5.2.1.0 build 4694 
Content Search Services integration build cas521.019 
</Details>

Das wird aber auf der Webseite nicht so ausgegeben, sondern so:

P8 Content Platform Engine 5.2.1.0 Content Engine Build dap521.234 Configuration Manager Build cm521.058 Bulk Import Build cebi521.009 Content Search Services Client 521 v 5.2.1.0 build 4694 Content Search Services integration build cas521.019 

Wie könnte man das so umsetzen, dass die <Details>-Tags mitausgegeben werden??

Ich habe den meta-Tag aus der XML.jsp weggemacht und nun wird das Ganze schön mit den Tags ausgegeben 


```
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
```


----------



## dzim (20. Nov 2014)

Alter Schwede... *@Joose*: Hut ab, dass du das durchhälst! Ich hätte schon nach den Posts der ersten Seite aufgegeben!
Nicht für ungut *@ebruss17*, aber du geizt hier nicht gerade mit Unwissen. In welchen Semester bist du eigentlich gerade?

Wenn ich so was hier sehe, frage ich mich schon, wie weit du dich mit der Sache (Java allgemein und Datenbankabfragen via JDBC im spezielln) schon beschäftigt hast (von XML reden wir lieber nicht einmal).

```
selectKunden = connection.prepareStatement("SELECT lf_ID, Lieferantinformationen FROM Lieferant WHERE lf_ID ='" + request.getParameter("xml") + "' ");
```
Man nutzt PreparedStatements unter anderen, um SQLInjection abzuwähren, nur in dieser Form bringt es dir gar nicht!


```
selectKunden = connection.prepareStatement("SELECT lf_ID, Lieferantinformationen FROM Lieferant WHERE lf_ID=?");
// Fragezeichen sind Platzhalter, die mit den #set*(index, value)-Methoden mit echten Daten befüllt werden
selectKunden.setInt(1, zahl); // Achtung bei JDBC geht es ausnahmsweise nicht mit 0 los, sondern mit 1
```
Alles andere ist Blödsinn.
Und hab ich schon mal erwähnt, das mir dieser denglische Code Kopfschmerzen bereitet?! :-(


----------



## ebruss17 (20. Nov 2014)

Wenn ich das so wie du mache, bekomme ich eine Fehlermeldung, ist das denn wie ich es gemacht habe falsch oder ein Schwachsinn?


----------



## Joose (20. Nov 2014)

ebruss17 hat gesagt.:


> Wenn ich das so wie du mache, bekomme ich eine Fehlermeldung,



Wie schon ein paar Posts weiter vorne: "Ich habe eine Fehlermeldung, aber will sie euch nicht verraten".
Entweder verratest du uns auch immer welche Fehlermeldung oder eben nicht, dann musst du es aber auch alleine lösen.



ebruss17 hat gesagt.:


> ist das denn wie ich es gemacht habe falsch oder ein Schwachsinn?



Nein nicht falsch, nur unsicher! Außerdem ist die Variante mit "preparedStatements" auch lesbarer als komische Stringverkettungen.


----------



## ebruss17 (20. Nov 2014)

okay ich habe das jetzt mal so gelöst:


```
selectKunden = connection.prepareStatement("SELECT Lieferantinformationen FROM Lieferant WHERE lf_ID =?");
selectKunden.setInt(1, zahl);
```

Dürfte ich mal fragen, wofür ich die letzte Zeile brauche??


----------



## Joose (20. Nov 2014)

Um den Platzhalter im SQL Statement zu ersetzen -> Grundlagen von SQL, kann man auch einfach in der Dokumentation nachlesen


----------



## dzim (20. Nov 2014)

> Dürfte ich mal fragen, wofür ich die letzte Zeile brauche??


**facepalm**
Bitte lese dir die, bevor du so etwas fragst einfach mal die JavaDoc dazu durch...
https://docs.oracle.com/javase/8/docs/api/java/sql/PreparedStatement.html#setInt-int-int-
Und ja: Ist nicht schwer zu googlen javadoc 8 preparedstatement


----------



## JavaMeister (21. Nov 2014)

Leute das ist doch ein troll. Und ihr feedet ihn. Habt ihr echt soviel Langeweile??? Absolut lächerlich.


----------

