Java code aus JSP-File durch JSTL code ersetzen

wakoz

Aktives Mitglied
Hi

Ich versuche mich gerade an JSP und JSTL, eine Übungsaufgabe mit der ich mich beschäftigt ist das ich folgende und weitere JSP files überarbeite und Java code durch JSTL ersetze.

Java:
<?xml version="1.0" encoding="ISO-8859-1" ?>

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1" import="model.*"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Katalog.jsp</title>
</head>
<body>

<%
	Katalog katalog = new Katalog();

	Warenkorb warenkorb = (Warenkorb) session
			.getAttribute("ware.warenkorb");
	if (warenkorb == null)
		warenkorb = new Warenkorb();

	Buch buch;
	final String ISBN = "isbn";
	final String PLUS = "plus";

	buch = katalog.getBuchInfo(request.getParameter(PLUS));

	if (buch != null)
		warenkorb.setWarenkorbElement(buch.getIsbn(), buch);
	session.setAttribute("ware.warenkorb", warenkorb);
%>

<%@ include file="/view/Banner.jsp"%>

<%
	if (buch != null) {
%>
<span style="font-size: 20px; font-weight: bold;"> Sie haben
folgendes Buch dem Warenkorb hinzugefügt:</span>
<br />
<span style="font-size: 20px; font-style: italic;"> <%
 	out.print(buch.getAutor());
 %>
- <%
 	out.print(buch.getBuch());
 %> </span>
<a href="<%out.print(response.encodeURL("Warenkorb"));%>">zum
Warenkorb &raquo;</a>
&nbsp;
<a href="<%out.print(response.encodeURL("Bestellen"));%>">Bücher
bestellen &rarr;</a>
<%
	}
%>

<table>
	<tr>
		<th colspan="3">B&uuml;cherliste</th>
	</tr>
	<%
		for (Buch katalogBuch : katalog.getAlleBuecher()) {
	%>
	<tr>
		<td>
		<%
			out.print(katalogBuch.getAutor());
		%>
		</td>
		<td><a
			href="<%out.print(response.encodeURL("Buch?" + ISBN + "="
						+ katalogBuch.getIsbn()));%>">
		<%
			out.print(katalogBuch.getBuch());
		%> </a></td>
		<td>
		<%
			out.print(katalogBuch.getPreis());
		%> &euro;</td>
		<td><a
			href="<%out.print(response.encodeURL("?" + PLUS + "="
						+ katalogBuch.getIsbn()));%>">
		Buch hinzuf&uuml;gen </a></td>
	</tr>
	<%
		}
	%>
</table>

<a href="<%out.print(response.encodeURL("Warenkorb"));%>">zum
Warenkorb &raquo;</a>

</body>
</html>

Die Schleifen oder If Statements sollten soweit kein Problem sein, hier im forum habe ich schon was passendes gefunden.
Aber folgendes verstehe ich noch nicht, bzw. verstehe ich nicht ob oder wie man dies in JSTL darstellen kann.
Java:
<%
	Katalog katalog = new Katalog();

	Warenkorb warenkorb = (Warenkorb) session
			.getAttribute("ware.warenkorb");
	if (warenkorb == null)
		warenkorb = new Warenkorb();

	Buch buch;
	final String ISBN = "isbn";
	final String PLUS = "plus";

	buch = katalog.getBuchInfo(request.getParameter(PLUS));

	if (buch != null)
		warenkorb.setWarenkorbElement(buch.getIsbn(), buch);
	session.setAttribute("ware.warenkorb", warenkorb);
%>
 
Zuletzt bearbeitet:

wakoz

Aktives Mitglied
Meine Frage ist wohl unpräzise :)

Mich interessieren die beiden Strings so wie die Methoden aufrufe
Java:
<%
	Katalog katalog = new Katalog();

	Warenkorb warenkorb = (Warenkorb) session
			.getAttribute("ware.warenkorb");
	if (warenkorb == null)
		warenkorb = new Warenkorb();

	Buch buch;
	final String ISBN = "isbn";
	final String PLUS = "plus";

	buch = katalog.getBuchInfo(request.getParameter(PLUS));

	if (buch != null)
		warenkorb.setWarenkorbElement(buch.getIsbn(), buch);
	session.setAttribute("ware.warenkorb", warenkorb);
%>

Das Handling mit den beiden Strings ist mir unklar ich benötige diese um nicht überall Texte neu mit neuen Rechtsschreibfehlern erstellen zu müssen ;) besonders weil diese auch Übergabe Parameter sind.
Die Methoden aufrufe katalog.getBuchInfo(request.getParameter(PLUS)) und warenkorb.setWarenkorbElement(buch.getIsbn(), buch) verstehe ich auch nicht so ganz.

katalog und warenkorb werden zu JSTL Objekten, wie würde ich diese bei der Umstellung auf JSTL schreiben? Ich habe in einigen Tutorials gesehen das die selben Methoden durch die Umstellung anders geschrieben wurden. Also aus katalog.getBuchInfo(request.getParameter(PLUS)) würde dann "katalog.buchinfo", aber was passiert mit den Übergabe Parameter? das request ist nur im JSP Dokument vorhanden und muss der Java Methode getBuchInfo übergeben werden! oder mit 2 Übergabeparameter?

Nicht zu vergessen die session wie würde ich die in JSTL schreiben?
 
M

maki

Gast
Als erstes solltest du Darstellung von Logik trennen, sonst kannst du dir den Aufwand sparen Scriptlets durch JSTL zu ersetzen ;)

Logik am besten in Javaklassen (zB. Servlets oder ggf. eigene Actionklassen), JSPs nur zur Darstellung nutzen, dann erledigen sich deine Fragen von selbst :)

Requests gehen nur noch an Servlets (den Controller), dieser bereitet Daten auf und kümmert sich um die Logik, dann das WErgbnis nur noch an eine JSP weiterleiten.
Suche mal nach "MVC" bzw. "Model 2"
 

wakoz

Aktives Mitglied
Wo siehst du da Logik? Das ist alles View! Alles an Java Code was ich da drinnen habe ist alleine dazu da um auf dem Browser darzustellen! Entweder um weitere Seiten aufzurufen oder an die Logik werte zu Übergeben, damit diese mit den werten weiterarbeiten kann.

Das MVC Muster verwende ich bereits, aber die Ansteuerung der Logik ist derzeit in Java code geschrieben und das soll alles JSTL werden.

Katalog und WarenKorb sind Bestandteile meines Models und werden im JSP benötigt um session abhängig deren Inhalte in der View darzustellen. Und mehr macht mein Java Code nicht!
 
M

maki

Gast
Das gehört doch in keine View (ausser in PHP vielleciht):
Java:
    Katalog katalog = new Katalog();
 
    Warenkorb warenkorb = (Warenkorb) session
            .getAttribute("ware.warenkorb");
    if (warenkorb == null)
        warenkorb = new Warenkorb();
 
    Buch buch;
    final String ISBN = "isbn";
    final String PLUS = "plus";
 
    buch = katalog.getBuchInfo(request.getParameter(PLUS));
 
    if (buch != null)
        warenkorb.setWarenkorbElement(buch.getIsbn(), buch);
    session.setAttribute("ware.warenkorb", warenkorb);
.. und dargestellt wird dadurch gar nix ;)
 

wakoz

Aktives Mitglied
Da hat sich doch eine Fehler eingeschlichen genau das was du bemängelt hast sollte bereits mein controller machen :oops:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
nrg Java-Code in Taglib wird nicht richtig ausgeführt. Web Tier 7
A Parameterübergabe an Servlet und Aufruf von Servlets per Java Code Web Tier 7
J rich:modalpanel vom java-code aus öffnen und schliessen Web Tier 2
S Java Code in JSF Web Tier 10
LimDul Komplexe Generierung von Java-Klassen aus WSDL Web Tier 1
E Java Servlet doPost request, Mehrere Parameter mit demselben Namen aus Tabellenzeilen Web Tier 2
platofan23 Java Login Überprüfung ohne Srciptlets in der JSP Web Tier 4
Dimax JSP Progress Bar in JSP nur mit Java Web Tier 4
S Einträge aus Datenbank einzeln darstellen (JSP, JAVA, HTML) Web Tier 9
R JavaScript für Java Enterprise Entwickler Web Tier 1
O JSF Java Unsigned Applet PrivilegedActionException Problem Web Tier 2
S JSP Hm... Vorlage für Java Basierende Webseite? Web Tier 0
S Button klick soll Java methode aufrufen Web Tier 2
R Tomcat - java.lang.OutOfMemoryError: PermGen space Web Tier 0
F JSP jSP Datei mit normalem Java Programm auslesen? Web Tier 5
T Spark Java Web Framework Web Tier 0
G Probleme mit Java + Tomcat | Cannot switch on a value of type String for source level below 1.7 Web Tier 8
S java.lang.ExceptionInInitializerError: Wieso??? Web Tier 3
N JSP Free Webhoster Java Backend? PHP? Web Tier 1
D Java EE Servlet login Problem Web Tier 1
L Servlet Java Entschlüsselungsprogramm in Webapplikation einbinden Web Tier 0
Streeber java.lang.NoClassDefFoundError: org/sqlite/NativeDB Web Tier 0
M GWT - Externe Java Libs auf Server Seite - zB. JDBC Web Tier 6
S Java Bean und Java Servlet Web Tier 2
L java.io.NotSerializableException für domain Objekte - Design Problem? Web Tier 12
H MVC in Java pur / Controller als Instanz? / Theorie! Web Tier 4
T Einsteigerfragen zu Servlets/Webprogrammierung mit Java Web Tier 11
J Übergabe von Parameter aus JSP an Java Web Tier 2
D JSF Überprüfen der Session ID in JSF und JAVA Web Tier 9
H JSP, Eclipse, Tomcat - Java Klasse wird nicht gefunden Web Tier 8
B JSF Mojarra 2.1.5: java.lang.IllegalStateException: Cannot create a session after the response has been Web Tier 7
J JSF Java Beans Konventionen Web Tier 2
P Blog in Java/JSP Web Tier 5
S Per JavaScript Java ansteuern - Welche Technik? Web Tier 2
T Seam-Komponenten oder Java Bean soll direkt nach Appserver-Start "leben" Web Tier 4
B Thread start bei Java Web Anwendung Web Tier 6
M Suche Java Framework Web Tier 2
B Tomcat 6 ergibt Fehler - java.net.SocketException Web Tier 2
G Probleme mit EclipseLink und Java.util.Date Web Tier 3
ruutaiokwu js kalendar, der mit java.text.SimpleDateFormat kombatibel ist... Web Tier 4
B Java EE 6 Problem (EL) Web Tier 4
F Migration eines CMS von PHP nach JAVA Web Tier 3
R GWT 2.1.1 mit Java 1.6 statt 1.5 Web Tier 8
W JSP - Attribut-Werte aus JAVA-Klasse ? Web Tier 8
T Werte aus java Klasse in jsp nutzen Web Tier 5
N java.lang.NoClassDefFoundError: org/jdom/JDOMException Web Tier 3
M JSP Ausgabe von Java-Objekten Web Tier 7
D JSP, Java Applets einbinden Web Tier 2
LadyMilka java.lang.NumberFormatException: For input string: ... Web Tier 5
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
K Bilder in Java-Webapplikationen Web Tier 12
S Java Servlet Content Type Web Tier 3
K Analye einer Seite (Java, JSP, ...) Web Tier 12
S Expression Language in Java Web Tier 13
A Ssh connection mit java jsch? Web Tier 2
M Body onUnload Java Methode aufrufen Web Tier 13
F Frage zu Java Beans Web Tier 17
M Java Framework für größere Projekte verwenden Web Tier 5
U access denied bei Datei Schreiben mit Java unter Linux trotz gesetzter Rechte Web Tier 2
P Java-Program -> Web Programm Web Tier 6
F Java Applets in html einbinden Web Tier 10
A SSL-Zertifikat in Java-Webanwendungen laden Web Tier 4
ruutaiokwu Wert hinter JSP-Tag nach Java-String in Skriptlet Web Tier 4
N java bean in eclipse Web Tier 6
N Servlet und java.lang.NoClassDefFoundError Web Tier 4
D request.contextPath in Java-Klasse ausführen Web Tier 5
T In einem Struts Tag Werte mit Java einfügen Web Tier 2
G [JAVA / JSP] ArrayList in JSTL foreach verarbeiten Web Tier 4
G CSV-Anbindung an Java Web Tier 2
G Java Server Face Performancelastig? Web Tier 2
H Java Servlet und HTML Form Web Tier 3
U Java Application auf Tomcat Web Tier 5
G Validierung mit Java Server Faces Web Tier 4
P No source code is available for type -GWT Error Web Tier 1
T Alternativ zu diesem Code??? Web Tier 6
K "No source code is available"-Fehlermeldung mit EMF-Modell bei GWT Web Tier 2
K JSP Login Code Web Tier 14
G Code in JSF-Seite Web Tier 7
K JSF und HTML-Code Web Tier 2
W Race-Conditions im folgenden Servlet-Code möglich? Web Tier 12
J JavaScript-Code aus Applet ausführen? Web Tier 4
S Probleme mit den Nav_rules und HTML code Web Tier 2
G MyFaces: HTML Ausgabe Code steuern Web Tier 8
M JSF - Bean aus SessionScope direkt im JSF Code auslesen Web Tier 1
K Http Status Code abfragen Web Tier 8
O Source-Code vom Tomcat kompilieren lassen Web Tier 6
H File Output Servlet Web Tier 6
H Applet wirft AccessControlException bei File von Servlet Web Tier 3
M JSP File Browser Web Tier 9
A Servlet File Upload funktioniert nur lokal auf Entwicklungsrechner, nicht in Tomcat Web Tier 5
N File empfangen Web Tier 3
M File aus Projektverzeichnis laden Web Tier 16
R Download JSP-File/Script Web Tier 3
L File Upload - Dateiformat einschränken Web Tier 4
N is out of sync with file system Web Tier 2
S Servlet File Upload (API oder JSPSmart download) Web Tier 4
reibi Konfiguration ausserhalb vom WAR-File Web Tier 7
R File Einlesen mit jsp/servlets Web Tier 11
hdi File Upload erst nach Prüfung Web Tier 4
E Jsp file upload Web Tier 3

Ähnliche Java Themen

Neue Themen


Oben