JSP, Requests, Tags... Verständnisproblem

Wyatt

Erfahrenes Mitglied
Hallo!

ich wusel momentan ein wenig mit JSP herum... Servlets nutze ich nicht, da ich einfach versuchen möchte, mit JSP das zu erreichen, was ich will.

Nun versuche ich also mit JSP Parameter an andere JSP Seiten zu übergeben.
Dieses geht ja entweder durch
Java:
<% 
     request.setParameter("nr1", 1);
     request.setAttribute("nr2", 2);
     getServletContext().getRequestDispatcher("/next.jsp").forward(request, response);
%>

<% 
     request.getParameter("nr1");
     request.getAttribute("nr2");
     // hier dann nach Datentyp casten/parsen und weiterarbeiten z.B. rechnen
%>
oder mit den JSP-Tags
Java:
<jsp:forward page="next.jsp">
     <jsp:params>
          <jsp:param name="nr1" value="1"/>
          <jsp:param name="nr2" value="2"/>
     </jsp:params>
</jsp:forward>

// auslesen ist einfach... aber rechnen?!
${param.nr1} 
${param.nr2}

Wie kann man das nun mit JSP erreichen?
Ich habe keine Möglichkeit gefunden ${param.nr1} mit ${param.nr2} zu verrechnen...

Welche möglichkeiten habe ich noch ohne Servlets mit JSP Parameter / Objekte an andere JSP Seiten weiterzuleiten und damit weiter zu arbeiten (z.B. in Scriptlets), so dass der Code trotzdem leserlich und vor allem einheitlich bleibt? Bisher ist mir immer nur das Gegenteil gelungen.

Gruß
Felix
 
Zuletzt bearbeitet:
Je nach framework ist der Zugriff auf das requestobjekt etwas versteckt. Das scheint ja schon zu klappen.
Rechnen mit den Werten ist das Problem? Das ist viel simpler als der Rest, quasi Java basics. Da du standardmässig Strings aus dem request zurückbekommst, müsste also erstmal passend gecastet werden.
Code:
		String a = "123";
		int aint = Integer.valueOf(a).intValue();
		
		String b = "0.123";
		double bdouble = Double.valueOf(b).doubleValue();
 
...stimmt. Außerdem ist es eine gute Idee, solche Werte in ein Objekt zu kapseln und dieses Objekt in die Session zu packen. Das Objekt selbst ist eine Java Klasse, kein Servlet. Generell sollte man die Logik von der Präsentation trennen.

MyObject myObject = new MyObject( param1, param2);

Damit andere JSPs gekapselt auf die Infos zugreifen können:

session.setAttribute("myObject", myObject), so in der Art.

Dein Objekt könnte die Parameter als Werte übergeben bekommen.
Im Objekt castest Du dann die String Values aus den Parametern auf
das Format und führst die Berechnungen aus. Dann holst Du dir aus dem Objekt das Ergebnis und stellst es dar. Das Object würde dann ggf. auch andere Objekte enthalten können, oder eben auch aus Parametern Berechnungen durchführen und die Ergebnisse zurückgeben können.

int result = myObject.getResultFromParams();

Wenn Du Ergebnisse etc. in requests verarbeitest läufst Du spätestens
beim ersten richtigen Projekt gegen eine Wand.

Auf keinen Fall sollten JSPs logische Berechnungen ausführen.

VG Tim
 
Zurück