ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
724
724
EMPFEHLEN
-
04.06.10 15:04 #1milchkaffee Tutorials.de Gastzugang
Hallo, ich bin noch ziemlicher Neuling in Sachen Struts 2. Nun komm ich nicht weiter bei einer Action.
Auf einer Webseite werden mehrere Checkboxen sein, jedoch nicht in einem Formular mit Submit-Button, sondern per Javascript abgeschickt. Die Webseite selbst darf durch Anklicken der Checkboxen nicht verlassen werden. Deshalb die Javascript-Übergabe, die soweit schon funktioniert. Hier etwas Code, noch als Textlink:
xml-Auszug:HTML-Code:<s:url action="Sammler" includeContext="true" id="klick"> <s:param name="nr">2222</s:param> </s:url> <a href='<s:property value="#klick"/>' onClick="location.href='<s:property value="#klick"/>';return false;">Klack</a>
Aufruf der Sammler.action klappt. Dort wird in eine Liste in den SessionContext geschrieben, denn die Ergebnisse müssen seitenübergreifend erhalten bleiben, klappt auch. Problem: Die Action leitet anschließend auf eine jsp-Seite weiter. Das darf sie aber nicht. Sie soll die Werte sammeln, nichts weiter. Ich habs schon mit "INPUT" versucht, aber auch da wird weitergeleitet. Und ohne result-Angabe gehts schon gar nicht.HTML-Code:<action name="Sammler" class="coll.Sammler"> <result name="SUCCESS">/coll/liste.jsp</result> </action>
Wie kann man eine Action stoppen zwischen Ausführung und Weiterleitung?
Grüße
Karsten
-
05.06.10 15:09 #2
Hallo,
html ist synchron, d.h. ein Klick, der ein Formular abschickt oder ähnliches hat einen synchronen http-Aufruf zur folge. Der Browser rechnet dann mit einer neuen html-Seite. Auch wenn man es hinbekommt, dass struts keine neue Seite ausliefert, wird der Browser damit ein Problem haben.
Typischerweise würde man sowas mit einer asynchronen Technik realisieren wie http://de.wikipedia.org/wiki/Ajax_%28Programmierung%29
Ich würde aber nicht ausschliessen, dass es einen Trick gibt, um ein ähnliches asynchrones Verhalten zu produzieren.Denken gefärdet die Gewohnheit
-
08.06.10 15:52 #3milchkaffee Tutorials.de Gastzugang
Danke, mit Ajax bzw. JSON hatte ich auch schon rumgespielt. Aber da müsste der JSON-String deserialisiert werden, das lohnt sich nun wirklich nicht.
Jetzt probiere ichs mal mit Result-Typen. Ich habe einen geschrieben, dort rein die Datenverarbeitung, die seither in der Action lag. Result-Typ wird gefunden, abgearbeitet, aber danach kommt schon wieder eine autom. Weiterleitung. Diesmal zu Collector.action.
Ist alles mehr oder weniger aus dem Buch "Struts 2 im Einsatz". Dort steht, dass ein package, das struts-default erbt, autom. eine Weiterleitung (dispatch) durchführt. So, aber mein package erbt explizit nicht von struts-default. Ich versteh das nicht.HTML-Code:<package name="sammel" namespace="/example"> <result-types> <result-type name="custom" class="coll.StopResult" /> </result-types> <action name="Collector" class="coll.StopResult"> <result type="custom">artist</result> </action> </package>
Gruß
Karsten
-
08.06.10 16:36 #4
Es gibt zwei Weiterleitungstechniken, forward und redirect.
Bei forward wird die angefragte URL auf eine andere URL serverseitig weitergeleitet, dabei sieht der Client nur die URL, die er angefragt hat.
Bei redirect wird der Clientbrowser benachrichtigt, eine andere URL aufzurufen, was dieser auch tut. Den zweiten Aufruf bemerkt der Client.
Mit einem von beiden rechnet der Clientbrowser für eine normale html-form. Sollte der Server einfach nichts machen, also kein redirect oder forward zu einer gültigen Seite, dann wird der Browserclient - je nach Hersteller - die aktuelle Seite für ungültig erklären.
Asynchrone Techniken führen keinen HTTP Request durch und haben so dieses Problem nicht. Dort wird der Request über eine Browserkomponente abgebildet, Ajax-engine z.B.Denken gefärdet die Gewohnheit
Ähnliche Themen
-
Action im Struts
Von Athro im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 11.04.08, 15:24 -
Struts action-forward Parameterweitergabe
Von shockshell im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 2Letzter Beitrag: 10.03.08, 21:17 -
Formular: Action-Befehl auf Wunsch stoppen
Von Dommas im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 29.09.05, 13:05 -
Formular: Action-Befehl auf Wunsch stoppen
Von Dommas im Forum PHPAntworten: 3Letzter Beitrag: 29.09.05, 12:10 -
Struts Action auf andere Action umleiten und Parameter übergeben
Von mungoparks im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 2Letzter Beitrag: 28.01.05, 18:28





Zitieren
Login





