Formulareingaben gezielt aus Session löschen

Status
Nicht offen für weitere Antworten.

Rumborak

Aktives Mitglied
Hallo zusammen!

Ich benutze in einer Struts-Anwendung ein DynaValidatorForm. Die Eingaben werden zunächst geprüft und dann gesendet, falls alles korrekt ist - funktioniert soweit prima!

Jetzt möchte ich aber die Benutzereingaben nach dem Versenden aus der Session entfernen. Bis jetzt hat das nur mit session.invalidate() bzw. session.removeAttribute(mapping.getAttribute()) geklappt, wobei ich noch nicht genau weiß, was der zweite Befehl genau macht.

Ich will auf keinen Fall die gesamte Session zurücksetzen - nur die Formulareingaben löschen - wie stelle ich das am besten an?

Danke schonmal für die Hilfe!

PS: Natürlich habe ich session.removeAttribute("param") auch schon probiert!
 

clemson

Bekanntes Mitglied
versuch mal in der struts-config das initial attribut bei der definition der dynaactionform elemente zu setzen...


was willst du genau machen? ich habs irgendwie nicht ganz verstanden. der benutzer gibt werte in einer actionform ein, submitted und dann werden diese daten in der session gespeichert, oder wie?
 

Rumborak

Aktives Mitglied
Naja, das Ganze ist eine kleine Beispielanwendung. Auf einer fiktiven Homepage kann der Kunde einen personalisierten Newsletter abonnieren bzw. mehrere verschiedene Newsletter - ganz wie Du willst. Einzugeben sind die eMail-Adresse. Die Wahl des Newsletters erfolgt über Radio-Buttons (ja/nein).

Der Abschnitt in der struts-config.xml sieht so aus:
Code:
<form-bean name="subscriptionForm" type="org.apache.struts.validator.DynaValidatorForm">
	<form-property name="abo_technology" type="java.lang.String" initial="" />
	<form-property name="abo_products" type="java.lang.String" initial="" />
	<form-property name="abo_jobs" type="java.lang.String" initial="" />
	<form-property name="email" type="java.lang.String" initial="" />
</form-bean>
Dazu das Action-Mapping:
Code:
<action attribute="subscriptionForm" input="page.subscription" name="subscriptionForm" path="/subscription" type="de.fhf.struts.action.SubscriptionAction">
	<forward name="showSubscription" path="page.subscription" redirect="true" />
	<forward name="showConfirmation" path="page.confirmation" redirect="true" />
	<forward name="showError" path="page.error" redirect="true" />
</action>
Über den struts-validator werden die Eingaben überprüft. Es soll außerdem demonstriert werden, wie man mit Struts die Werte in der Session speichern kann - alles kein Problem.

Jetzt hätte ich halt gerne, daß das Formular nach dem erfolgreichen Absenden der Daten auch wieder zurückgesetzt wird, damit andere Benutzer ggf. ihre Eingaben machen können. Wie gesagt, wenn ich die Session komplett lösche geht´s - falls das Formular aber Bestandteil einer größeren Web-Applikation ist, in der noch mehr Daten in der Session abgelegt werden, macht es natürlich keinen Sinn, alles zu löschen.

Ach ja, hier noch die Action:
Code:
public class SubscriptionAction
		extends Action
{
	public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response )
			throws Exception
	{
		HttpSession session = request.getSession();
		DynaValidatorForm input = (DynaValidatorForm) form;
		String userEmail = input.getString( "email" );
		String userAboTechnology = input.getString( "abo_technology" );
		String userAboProducts = input.getString( "abo_products" );
		String userAboJobs = input.getString( "abo_jobs" );

/*
		session.setAttribute("user", null);
		session.setAttribute("abo_technology", null);
		session.setAttribute("abo_products", null);
		session.setAttribute("abo_jobs", null);
*/
		//input.reset(mapping, request);

		session.removeAttribute("email");
		session.removeAttribute("abo_technology");
		session.removeAttribute("abo_products");
		session.removeAttribute("abo_jobs");

		session.removeAttribute(mapping.getAttribute());
		//session.invalidate();

		return mapping.findForward( "showConfirmation" );
	}

}
 

clemson

Bekanntes Mitglied
hmm, willst du jetzt die daten aus dem formular raushaben oder aus der session?

wenn du sie aus dem formular haben willst, dann müsste deine
Code:
input.reset(mapping, request);
genügen.


du könntest auch den scope deiner actionform für deine action festlegen, vielleicht hilft dir das weiter...

Code:
<action attribute="subscriptionForm" input="page.subscription" name="subscriptionForm" path="/subscription" type="de.fhf.struts.action.SubscriptionAction" scope="request" >
   <forward name="showSubscription" path="page.subscription" redirect="true" />
   <forward name="showConfirmation" path="page.confirmation" redirect="true" />
   <forward name="showError" path="page.error" redirect="true" />
</action>
 

Rumborak

Aktives Mitglied
...also mit
Code:
session.removeAttribute( mapping.getAttribute() );
geht es! Alles Andere hat nicht funktioniert ... so ganz versteh´ ich das zwar noch nicht - trotzdem mal danke!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A (EJB)Session abhängige Parameter in POJO lesen Allgemeines EE 3
O JSF / Primefaces Session handling Allgemeines EE 1
I Session löschen in Bean (Session Beans) Allgemeines EE 1
J Hello World mit Stateless Session Bean - Was mache ich falsch? Allgemeines EE 2
H Shared Session in Webmodulen Allgemeines EE 2
J Unterschied zwischen HttpSession und Stateful Session Bean Allgemeines EE 3
R Wie eine stateful session bean erneut "aufgreifen" Allgemeines EE 22
P Unterschied Session Scope / Stateful Session Bean Allgemeines EE 6
F Session zerstören Allgemeines EE 12
A Im PhaseListener auf Stateful Session Bean zugreifen Allgemeines EE 6
G Session Allgemeines EE 6
E Session Problem Allgemeines EE 9
G Session neu!? Allgemeines EE 7
M Fehler bei Javamail Session mit Glassfish 3 Allgemeines EE 3
Java.getSkill() verbindung / connection in session speichern Allgemeines EE 4
D Frage zum Statefull Session Beans Lebenszyklus Allgemeines EE 3
MQue Session - Cookie Allgemeines EE 27
MQue Session Exception Allgemeines EE 5
M j_security_check Login und Session-ID Allgemeines EE 2
S Session in eine andere Anwendung übergeben Allgemeines EE 2
F Session abgelaufen und direkter Aufruf Allgemeines EE 10
Y myFaces und Hibernate Session Handling Allgemeines EE 7
S tomcat session timeout - und was danach? Allgemeines EE 1
Q Form Based Authentication - Session Attribute ? Allgemeines EE 2
A Session Bean mit Local-Interface nutzen Allgemeines EE 3
G Session Cookies Allgemeines EE 2
Q Session Tracking - Wie macht mans richtig! Allgemeines EE 3
B Session Daten pro User merken Allgemeines EE 9
H [JSP JSF] Session Timeout und Redirekt zur Startseite Allgemeines EE 5
I Session-Attribute von Client zugänglich? Allgemeines EE 6
G session token Allgemeines EE 3
K tomcat: session-unabhängiges speichern Allgemeines EE 3
S Struts und Session Allgemeines EE 2
J Tomcat mit eigener Session-Implementierung Allgemeines EE 15
Y JSF - Session Handling Firefox Allgemeines EE 3
Y JSF - Session invalidate bei outpulink möglich? Allgemeines EE 4
R Session Tracking & Cookies Allgemeines EE 3
B Variablen ausserhalb der session ? Allgemeines EE 2
T Zugriff auf Session-Objekte in JSP Allgemeines EE 2
W Session tracking mit URL rewrite - Session weg! Allgemeines EE 4
G Neue Session bei der Verwendung von Frames Allgemeines EE 3
RaoulDuke EJB 3.0 - Exceptions aus Methoden einer Session Bean Allgemeines EE 2
T Session-Problem Allgemeines EE 2
Z Session aufräumen Allgemeines EE 2
G Session Problem Allgemeines EE 5
G JBoss - Session / Entity Allgemeines EE 8
S Bild in Session Allgemeines EE 2
F Session Bean -> Daten aus dem Servlet holen Allgemeines EE 11
P Struts Form Bean vs. Session Variable Allgemeines EE 6
A JSF - Daten in Session speichern Allgemeines EE 2
W Session nach Browserschließung erhalten im Tomcat Allgemeines EE 4
R Vernünftige Session-Verwaltung mit Struts Allgemeines EE 4
Q Tomcat/java-Session-Problem Allgemeines EE 9
L Zwei Browserfenster mit unterschiedlicher session - geht das Allgemeines EE 3
flashfactor Logging in einem Session-Bean Allgemeines EE 2
H JSP, Session und Java-Bean Allgemeines EE 4
P Session Problem Allgemeines EE 17
flashfactor Frage zu Session-Lebensdauer Allgemeines EE 3
J xdoclet session facade + value object Allgemeines EE 2
M Session Bean vers. Entity Bean Allgemeines EE 3
G ResultSet in Session speichern Allgemeines EE 4
P Session Attribute an Klasse übergeben Allgemeines EE 13
G Mit Session-IDs richtig umgehen Allgemeines EE 3
C Mail von einer Session Bean aus senden Allgemeines EE 2
P Session NullPointerException Allgemeines EE 17
H daten in session speichern Allgemeines EE 8
G list in session schreiben Allgemeines EE 4
P String-Array an session Variable übergeben Allgemeines EE 3
P Session Beans importieren Allgemeines EE 2
F Problem mit Session (Weitergabe an andere JSPs) Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben