servlet problem

  • hallo!
    folgendes problem:
    (ein jpeg des betreffenden formulars hab ich per attachment drangehängt)

    ich habe ein eingabeformular programmiert, das ganz normal mittels submit-button abgeschickt werden kann. der request wird an die doGet methode geschickt und ich kann auf alle parameter des formulars zugreifen.

    ich habe nun zusätzlich zum submit-button, einen link zum löschen und einen zum hinzufügen von formularzeilen eingefügt, der jeweils wieder auf die doGet methode referenziert und einen parameter übergibt:

    Code
    <A HREF=\"/beispielservlet?delete\">

    das problem liegt nun darin, dass ich gerne alle formulardaten des gesamten formulars mit diesem link an die doGet methode übergeben möchte und nicht nur jene parameter die mittels ? angehängt werden!
    d.h. ich hätte gerne die selbe funktionalität wie mit einem submit-button.

    danke
    hums

  • Versteh ich das Problem richtig: Wenn ich z.B. den Link zum Löschen der ersten Zeile anklicke, dann willst du, dass nicht nur die Paramter der Felder der ersten Zeile, sodern alle Parameter und Werte von allen Zeilen übergeben werden. Ist es bei dir auch so, dass diese "Löschen"-Links in getrennten Formularen sind? Wenn das so ist dann würd ich vorschlagen, dass du ein einziges Formular hast, wo alle Felder drinnen sind und statt den Links submit-buttons verwendest. Mit dem Namen des entsprechenden Buttons übergibst du dann einfach die Zeilennummer.

    The idea behind this technique is surprisingly simple: just go ahead and do whatever you want to without paying attention to what anybody else is doing. If there is a problem, worry about it later. (Many politicians use this algorithm, too) -- A. S. Tanenbaum, M. v. Steen, Distributed Systems

  • danke erstmal für die raschen antworten!

    die links befinden sich alle in ein und demselben formular (alle angezeigten eingabefelder befinden sich in diesem formular)
    ich erklär noch mal kurz die exakte funktionsweise:
    wenn ich auf den löschen-link klicke, wird die entsprechende zeile gelöscht und danach das gleiche formular ohne die gelöschte zeile angezeigt.
    der grund, warum ich will, dass alle paramter des gesamten formulars übergeben werden, ist folgender:
    wenn ich die werte einer zeile ändere und danach auf irgendeinen löschen-link klicke, wird mir zwar die betreffende zeile gelöscht, aber die änderungen die ich zuvor an anderen zeilen vorgenommen habe, werden nicht übernommen!

    die idee mit den submit-buttons statt den links ist mir auch schon gekommen, nur habe ich in diesem fall das problem, dass ich in der doGet methode danach nicht mehr unterscheiden kann, ob ich jetzt einen zeile löschen, hinzufügen oder ob ich das ganze formular ändern möchte.

    gibt es eine möglichkeit ähnliches über die namen der submit-buttons zu erreichen??

  • nun ja, du könntest ein javascript schreiben, dass das formular abschickt, wenn auf den link löschen gedrückt wird.

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • leider hab ich noch nie etwas mit javascript gemacht und bin deshalb ein bisschen hilflos! wie binde ich die function in mein servlet ein?

  • ich würde dir dringend dazu raten das userinterface nicht direkt in servlets sondern mit jsp zu realisieren.
    der html code ist dann pflegeleichter als zu warten/entwickeln als in servlets.

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • Zitat von hums

    leider hab ich noch nie etwas mit javascript gemacht und bin deshalb ein bisschen hilflos! wie binde ich die function in mein servlet ein?

    dein code oben hat einen kleinen fehler:
    den javascript teil musst du in den <head> teil einfügen. also schieb </head> hinter </script>.
    die funktion submitForm kannst du dann mit onClick eines html-elementes aufrufen:

    HTML
    <a href="#" onClick="submitForm('/beispielservlet')">LINK-TEXT</a>

    als html und javascript referenz kann ich dir http://selfhtml.org empfehlen.

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • hallo nochmal!
    kaum ist ein problem gelöst, wartet schon das nächste:
    wie im attachment zu sehen, habe ich ein formular mit 211 parametern (datensätzen), die ausgefüllt werden und nach dem klick auf 'speichern' in der datenbank gespeichert werden. die anwendung funktioniert normalerweise problemlos, nur sobald eine gewisse anzahl von parametern überschritten wird, bekomme ich die angezeigte fehlermedlung:
    'the document contains no data'

    ich hab mir gedacht, es hängt vielleicht mit dem browser-cache zusammen, dieser ist jedoch beim firefox schon auf 50mb eingestellt und sollte somit ausreichend sein.
    vielleicht kennt jemand diesen fehler und kann mir weiterhelfen...
    danke!

  • problem gelöst!
    ich hab das formular mit doGet übergeben und hier gibt es eine paramter-längen begrenzung (anzeige in der addressleiste).

    lösung also einfach mit post übergeben!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!