# HTML-FormularDaten in JavaBean



## testit1234 (18. Nov 2006)

Hallo.
ich habe ein vielleicht triviales Problem, aber irgendiwe komme
ich nicht drauf und google schmeißt auch nichts passendes aus!
So nun zu meinem Problem, ich habe ein Formular gebastelt, 
das nach klicken des submit-Button die Daten an eine weitere 
JSP-Seite gibt, diese trägt alle Werte in eine JavaBean ein und 
entscheidet, ob alle Angaben richtig sind, wenn ja leite weiter ansonsten 
kehre zurück zu dem Formular. So schön so gut, dann stehen auch wieder 
alle meine Werte im Formular, jetzt gibt es da nur den schönen rest Button, 
der eigentlich alles löschen soll. Problem ist dabei nur, 
das der scope=session ist un das Formular die aus der Bean 
gespeicherten Daten holt.
Wie ist es möglich dies zu realiseren?


```
<input type="submit" value="Einverstanden">&&&&
<input type="reset" value="Zur&cksetzen" 
onClick="<%myBean.reset(); response.sendRedirect("formular.jsp");%>">
```

Soweit so gut, das restten fun ktioniert auch noch, aber das 
weiterleiten mit sendRedirect irgendwie nicht. Ich glaube das 
liegt an den "! ich habe auch schon die escapeSequenz "\ ausprobiert und ' 
aber alles ohne Erfolg.

Wer kann mir helfen

Gruss
testit1234


----------



## SlaterB (18. Nov 2006)

kannst du deinen Code nicht umbrechen?
so ist ja alles zwei Monitore breit..


und im JavaScript kannst du doch keine JSP-Befehle schreiben,
frage im JavaScript-Forum nach einem neuen Seitenaufruf in JavaScript-Sprache 
bzw. schaue lieber erstmal in ein Tutorial/ google

auf das Bean in der Session im Server kannst du mit JavaScript beim Client auch nicht zugreifen,
du könntest höchstens einen speziellen Parameter an die URL ranhängen, der entsprechend interpretiert wird (im Server)

ganz ohne Neuladen könnte JavaScript sicherlich auch lokal das Formular löschen,
jeder neue Request mit neuen Daten wird dann automatisch das Session-Bean auf die neuen Daten setzen,
wiederum eine JavaScript-Frage


----------



## testit1234 (18. Nov 2006)

Hallo,
erstmal danke für deine schnelle Antwort. So wie es da 
steht funktioniert das resetten der Bean das sieht man daran, 
das bei einem Reload alle Daten verschwunden sind! Nur die 
Seite wird nicht automatisch neugeladen. Ich kann ja auch genauso gut 
bei einem Formularfeld <jsp:getProperty name="myBean" property="name" />
schreiben. 
Ansonten kann man das auch vom Typ Button machen und diesen mit dem Link
auf sich selber belegen und oben eine if-Abfrage, wenn Parameter XY = Z dann führe reset aus.
Finde ich aber ehr unelegant. Und ich versuche keine JS-Script zu verwenden, weil es viele einfach
deaktiviert haben. 
Ich habe auch später vor, wenn ich erstmal erste Erfolge gesehen habe AJAX davor zu schalten um
die z.B. die Richtigkeit der Daten vorher abfragen kann.


----------



## SlaterB (18. Nov 2006)

ich bin kein JavaScript-Experte, daher kann ich dir nich vollständig alles erklären,
aber ich bin mir sehr sicher, dass 
1.
wie gesagt onClick nur was mit JavaScript zu tun hat
2.
wie gesagt dies lokal beim Client ausgeführt wird, mit dem Server also nix zu tun hat
3.
wie gesagt dort JSP/ Java-Scriptlets keine Wirkung haben/ zu Fehlern führen,
habe ich so noch nirgendwo gesehen,

es geht allein (logischerweise) die JavaScript-Sprache, siehe z.B.
http://www.metasprache.de/Javascript/eventHandler/fenster.htm


falls dich das nicht überzeugt
du kannst ja gerne in deinem Bean Logging machen wann da wer reset() aufruft,
oder versuchen andere eindeutige Beweise zu setzen
(session.setAttibute("onClickWasHere","true"); )
aber ich denke auch das wird nicht klappen

und nochmal:
kannst du deinen Code nicht umbrechen?
so ist ja alles zwei Monitore breit..


----------



## testit1234 (18. Nov 2006)

Wenns interressiert, ich habe nochmal heute bei hellem Verstand 
gegoogelt und eine gute Lösung gefunden:

Formular:

```
<input type="submit" name="reset" value="Zurücksetzen" />
```

die bei Submit aufgerufene Validate.jsp bekommt den Namen des
Buttons übergeben.

```
if(request.getParameter("reset") != null){
	System.out.println("mal sehen ob ich gesetzt bin!!!");
   }
```

und siehe da im Log vom Tomcat, es funktioniert!
D.h. der Name eines Button wird als request mit übergeben und 
kann dann abgeglichen werden, so das dort mit Hilfe von 
Schleifen, Abfragen oder was auch immer weitergeleitet 
bzw. verarbeit werden kann. Und dies alles ohne JS-Script.

So kann ich den request für mich als Flag verwenden, 
wenn es eben gesetzt ist lösche die Bean-Session Variablen.


PS.: Vielleicht funktioniert dies auch mit dem Typ Reset im der eigenen Seite!

Gruss
Testit


----------

