JSP JSPs komplett Javafrei

ikz

Mitglied
Hi zusammen,

Hab hier ein Projekt am laufen in dem ein Portlet geschrieben wird. Code ist schon vorhanden, will ihn nun verbessern.
Gibts eine Möglichkeit den restlichen Javacode der in JSPs noch vorhanden ist, auch auszulagern um eine bessere Trennung von Präsentation und Logik zu bekommen?
Beans sind schon vorhanden. Es geht nur um ein paar Zeilen die noch in den JSPs sind. Also alles was in <%...%> steht.

Gruß:)
 

aicha

Mitglied
Du kannst den JSP-Code in Servlets auslagern und dann mit RequestDispatcher an eine JSP weiterleiten.
Weitere Möglichkeiten:
- EL-Funktionen
- Benutzerdefinierte Tags

Da bräuchtest Du wahrscheinlich eine Anleitung. Ich kann Dir "Servlets und JSP von KOpf bis Fuß" sehr empfehlen!
Gruß
 
M

maki

Gast
JSTL sei hier erwähnt, eine Suche nach "Model 2" bzw. MVC (letzteres im Kontext von Servlets/JSPs) sollte auch genug liefern.
 

ikz

Mitglied
Hey Danke für die prompten Antworten.:)
Hat mir auf jeden Fall schon weiter geholfen und ich versuche mich gerade in die Sache mit den Custom Tags einzulesen. Nur irgendwie wirft das mehr Fragen auf als vorher.:oops:

Also Beispiel:
[Java]
LinkedHashMap<String, String> userSubjectNames = toolPageBean.getUserSubjectNames(renderRequest);
Iterator<String> itr=userSubjectNames.keySet().iterator();

while(itr.hasNext()){
String usersubjectid = itr.next();
String anfDatum=toolPageBean.getDate(renderRequest,true,usersubjectid);
String endDatum=toolPageBean.getDate(renderRequest,false,usersubjectid);
String timePeriod=" (" + anfDatum + " bis " + endDatum +")";
[/code]
Hier werden also erst zwei Attribute erstellt. Einmal eine LinkedHashMap und einmal ein Iterator. Danach wird mithilfe einer While-Schleife und des Iterator über die LinkedHashMap iteriert.

Wie bekomm ich das jetzt in ein Custom Tag? Oder gibts eine einfachere Möglichkeit?
Ich weiß bis jetzt dass ich dafür eine neue Tag Klasse brauche und eine .tld Datei. Aber wie ich da jetzt anfange...mir fehlt irgendwie ein Einstiegspunkt.

Gruß
ikz
 

ikz

Mitglied
Ok werde mich mal mit dem c:foreach Tag beschäftigen.
Ok, habe ich jetzt gemacht.
Würde das für mein Beispiel stimmen?
Java:
<c:forEach items="${userSubjectNames}" var="usersubjectid">
<% String usersubjectid = %> <c:out value="${usersubjectid}"/>
</c:forEach>
Und weiter: wohin lagere ich die deklaration der LinkedHashMap aus? Bleibt die als Scriptlet in der JSP? In eine extra Klasse? Wenn ja wie sag' ich dem Tag dass es sich auf die Klasse bezieht?

Ouh man...sorry für meine blöden Fragen, bin halt noch Anfänger.:rtfm:
 

Ähnliche Java Themen

Neue Themen


Oben