JSP Parameter übergeben

M

McCoy

Gast
Heya,

ich möchte über einen link die gleiche seite nocheinmal aufrufen und dabei parameter übergeben.

Bsp. test.jsp
Code:
<%!
  String lstrName ="";
%>
[...]
<a href="test.jsp?lstrName=true">Name</a>
[...]
<%
				if (lstrName.equals("true")){
				%>
					<p>yeeeeeeeeeeeeeeeea</p>
				<%
				}else{%>
					ooooooooooooooooooo :(
				<%}

Mein Problem ist nun, dass lstrName beim erneuten Aufrufen durch den link wieder initialisiert wird und nie den String "true" annimmt.

Gibt es eine einfache Möglichkeit lstrName so zu initialisieren, dass es beim neu laden einer seite auch einen anderen Wert annehmen kann ?

Greetz :)
 
M

McCoy

Gast
Ja, Servlets verwenden. In JSPs kommt kein Java-Code. Aber wenn du dich steif gegen Servlets stellst: Initialisiere den String mit dem Übergabeparameter...

Hat nichts damit zu tun, dass ich mich steif gegen servlets stelle. Habe einfach meine Gründe dafür.

Habe es bereits versucht den parameter im a-tag zu intitialsieren und bekommen "cannot be resolved".
Bzw kannst du mir ein Bsp-Code zeigen ? (falls es möglich ist)
 

knoppers

Bekanntes Mitglied
Wenn ich das richtig verstehe müsstest du eigentlich am Anfang schreiben

Java:
<% String lstrName = request.getParameter("parametername");%>

Danach kannst du den Parameter auf "true" oder "false" prüfen.
Wenn es über die ganze Session lessbar sein sollte dann musst du.

Java:
[code=Java]<% String lstrName = (String)session.getAttribute("parametername");%>
[/code]
 
M

McCoy

Gast
@knoppers: Danke das wär's gewesen. :)

Parameter wird jetzt übergeben und variable kann auch anderen wert annehmen, aber jetzt funktioniert ein anderer Code nicht wenn ich eine test-if-abfrage vor anderen Code stelle.

Ich liebe JSP !!
 

Antoras

Top Contributor
Parameter wird jetzt übergeben und variable kann auch anderen wert annehmen, aber jetzt funktioniert ein anderer Code nicht wenn ich eine test-if-abfrage vor anderen Code stelle.
Du behebst ein Problem durch einen hack und schon tut sich ein zweites Problem auf. Das behebst du auch durch einen hack und schon funktioniert der erste hack nicht mehr und du musst diesen wieder durch einen neuen hack ausbessern, was aber dazu führt, dass der zweite hack nicht mehr funktioniert und dieser wiederum durch einen hack ausgebessert werden muss, der wieder mit einem anderen hack in Konflikt gerät, der ...
Verstehst du was ich sagen will?

Für kleinere dynamische Seiten reichen JSPs, sobald du aber mehr als ein paar hundert Zeilen Code hast bekommst du durch sie mehr Probleme als sie dir helfen.

Wenn du vorhast etwas größeres zu entwickeln, dann nimm Servlets und JSPs. Dann musst du nicht in ein paar Wochen/Monaten feststellen, dass du den Code in die Tonne kippen kannst und alles von Grund auf neu machen musst, weil nichts so funktioniert wie du dir das vorgestellt hast.

Der Mehraufwand am Anfang ist es wert ...
 
M

McCoy

Gast
Du behebst ein Problem durch einen hack und schon tut sich ein zweites Problem auf. Das behebst du auch durch einen hack und schon funktioniert der erste hack nicht mehr und du musst diesen wieder durch einen neuen hack ausbessern, was aber dazu führt, dass der zweite hack nicht mehr funktioniert und dieser wiederum durch einen hack ausgebessert werden muss, der wieder mit einem anderen hack in Konflikt gerät, der ...
Verstehst du was ich sagen will?

Für kleinere dynamische Seiten reichen JSPs, sobald du aber mehr als ein paar hundert Zeilen Code hast bekommst du durch sie mehr Probleme als sie dir helfen.

Wenn du vorhast etwas größeres zu entwickeln, dann nimm Servlets und JSPs. Dann musst du nicht in ein paar Wochen/Monaten feststellen, dass du den Code in die Tonne kippen kannst und alles von Grund auf neu machen musst, weil nichts so funktioniert wie du dir das vorgestellt hast.

Der Mehraufwand am Anfang ist es wert ...
Ich hab bereits bei deinem ersten Post voll und ganz verstanden was du mir sagen wolltest. Also erkläre ich mich: In weniger als einer Woche darf ich ein kleines JSP-Datenbank Projekt als "Mini-Projekt" meiner Uni vorstellen. Der Prof. der die Vorlesung hält ist nicht gerade auf dem neusten Stand was heutige Web-Techniken angeht. Ich würde da auch gerne etwas mehr reinstecken, leider habe ich noch genug andere Dinge die meine Aufmerksamkeit benötigen. Ohne die richtige verwendung von servlet+jsp+mysql je gelernt zu haben mache ich es jetzt einfach schnell und schmutzig - hatte zu Anfang genug Probleme für die ich 2 Tage ohne Erfolg geopfert hatte.

Nun zu seinem weiteren Problem das ich gerade zu "lösen" versuche ...

Ich übergebe param den String wert true und rufe die selbe Seite noch einmal auf.
Java:
String sortieren = "false";
...
<a href="test.jsp?param=true">Name</a>
hole mir sortieren mit request.getParameter.
Java:
sortieren = request.getParameter("param");
			if(sortieren.equals("true")){
				%>
					<p>weeeeeeeeeeee</p>
				<%
			}
			else{
				%>
					<p>AAAAAAAAAAAAARGH</p>
				<%
			}
Wurde der linkt geklickt wird die if-bedingung .equals("true") erfüllt. Wird sie nicht erfüllt geht JSP überhaupt nicht in den else-zweig. Stattdessen wird einfach nur null angezeigt.

ein else if(sortieren == null){...}ging auch nicht.

Die einfachen Dinge funktionieren nicht und darum liebe ich JSP. Werde jetzt weiter probieren ob ich noch irgendwas hinbekomme das funktioniert. Für hinweise in JSP-Code bin ich sehr dankbar :)
 

Antoras

Top Contributor
Der Prof. der die Vorlesung hält ist nicht gerade auf dem neusten Stand was heutige Web-Techniken angeht.
Ok, hab verstanden. ;)

Zu deinem Problem: Da wird wahrscheinlich eine Exception geworfen. Da ich schon ewig nicht mehr mit JSPs gearbeit hab weiß ich grad nicht ob die ohne try-catch-Block einfach nur geschluckt werden. Aber ich glaube schon.
request.getParameter() liefert null zurück wenn der Parameter nicht existiert. Im folgenden fliegt dann die Exception weil du auf einen String zugreifst, der null ist.
Du musst jetzt entweder abfragen ob der String null ist oder du musst das equals() umschreiben:
Java:
"true".equals(sortieren)
wenn equals() null übergeben wird fliegt keine Exception, es wird aber false zurückgegeben.

Falls das nicht der Fehler war musst du noch mehr Code zeigen, damit wir hier den Ablauf des Codes besser nachvollziehen können.

Die einfachen Dinge funktionieren nicht und darum liebe ich JSP.
Hä? Du magst es lieber schwer und kompliziert? Warum?
 
Zuletzt bearbeitet:
M

McCoy

Gast
Das war sarkastisch gemeint. Und das hier sollte noch einfacher Code sein, der übrigens funktioniert. Kann's aber kaum abwarten bis es wieder nicht funktioniert.
Java:
	[...]

	<body>
	<h1>~~~~~~~~~Test</a></h1>
	<%!
		Connection connection = null;
		ResultSet resultSet = null;
		Statement statement = null;
		String sortieren = "name";
	%>
	
	<%
		try{
			Class.forName("org.gjt.mm.mysql.Driver");
			connection = DriverManager.getConnection("...");
			statement = connection.createStatement();
			
			statement.executeUpdate("drop table if exists test;");
			statement.executeUpdate("create table test (name char(25),nalter int(2));");
			statement.executeUpdate("insert into test values ('Hugo',12);");
			[...]
			
			String test = request.getParameter("param");
			if(test !=null){
				sortieren = request.getParameter("param");
			}
			
			
				if(sortieren.equals("name")){
					resultSet = statement.executeQuery("select * from test ORDER BY name;");
				}
				else{
					resultSet = statement.executeQuery("select * from test ORDER BY nalter;");
				}
			
			%>
			<table>
				<tr id="head">
					<td><a href="test.jsp?param=name">Name</a></td>
					<td><a href="test.jsp?param=alter">Alter</a></td>

				</tr>
			<%
			while(resultSet.next()){
			%>	
			
				<tr>
					<td><%=resultSet.getString(1)%></td>
					<td><%=resultSet.getString(2)%></td>
				</tr>
			<%
			}
			%>
			</table>
			<%			
		}
		
		catch(Exception e){
			out.println(e.getMessage());
			e.printStackTrace();
		}
	%>
  </body>
</html>
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JSF JSF: Methode bei versteckt aufrufen & Parameter übergeben Web Tier 6
K JSP Parameter in die Bohne übergeben Web Tier 3
D Parameter übergeben und auslesen Web Tier 7
M STRUTS2 - Array als Parameter übergeben Web Tier 2
P Mit EL Parameter an Methode übergeben Web Tier 5
El Gringo Parameter in CommandLink übergeben Web Tier 4
S Bild hochladen mit JSP - Parameter übergeben Web Tier 4
E Java Servlet doPost request, Mehrere Parameter mit demselben Namen aus Tabellenzeilen Web Tier 2
R Servlet Alle Parameter ausgeben Web Tier 14
R JSF View Parameter auslesen Web Tier 2
R Parameter in HttpServletRequestWrapper übertragen Web Tier 2
J Übergabe von Parameter aus JSP an Java Web Tier 2
H Servlet Servlet nimmt HTTP-GET mit Parameter entgegen Web Tier 2
A JSF xhtml parameter / zugriff auf value Web Tier 2
P rich:panelMenuGroup --> expanded Parameter Problem Web Tier 3
K jquery.get() mehrere Parameter Web Tier 2
J JSF CommandLink Parameter Web Tier 2
K Link in JSP setzen mit Parameter/Attribut Web Tier 4
M JSF: CommandButton übergibt den Parameter nicht Web Tier 3
S servlet bedienen mit get und post parameter Web Tier 10
O Kann man POST Parameter Link-abhängig setzen? Web Tier 4
T parameter in der url Web Tier 3
R Request Parameter kopieren und setzen Web Tier 3
S JSF, Parameter aus Facescontext auslesen Web Tier 1
G jsp parameter anhängen Web Tier 2
leifg Parameter für Tags aus String lesen (JSP 1.2) Web Tier 2
6 JSF Form Attribute nicht an Bean übergeben Web Tier 2
M JSP Objekt in eine JavaBean übergeben Web Tier 7
Gossi JSP Map an JSP übergeben? Web Tier 3
T Button im Servlet - Werte übergeben Web Tier 2
J werte per post an servlet übergeben und auswerten Web Tier 3
F JSP übergeben von id + namen Web Tier 21
T Array übergeben an JS oder anders ? Web Tier 2
7 Struts iterator index JS-Funktion übergeben?? Web Tier 2
P Ist es möglich einen Returnwert einem httpRequest zu übergeben Web Tier 3
D ResultSet aus Bean an JSP übergeben Web Tier 11

Ähnliche Java Themen

Neue Themen


Oben