Announcement

Collapse
No announcement yet.

2 Forms in einer Seite

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2 Forms in einer Seite

    Hallo,

    ich hänge jetzt schon längere Zeit an folgendem Problem.

    Ich habe in einer JSP 2 HTML-Forms mit welchen ich mit submit ein java programm aufrufe und dann wieder zu dieser seite zurückkehre.

    beide forms rufen unterschiedliche seiten auf.

    das problem ist... wenn ich in der 1. form schon etwas ausgefüllt habe vom formular und ich bei der 2. form "submit" drücke, sind nach dem ausführen die werte von der 1. form logischerweise weg.

    Wie kann ich dieses Problem lösen?
    Mir ist bis jetzt noch keine passende Lösung eingefallen.

    Danke für eure Hilfe.

    lg.

  • #2
    Werte in der Seesion merken und beim anzeigen der Seite wieder reinschreiben

    http://entwickler-forum.de/showthread.php?t=69252
    Christian

    Comment


    • #3
      hmmmm.... hab ich auch gedacht aber muss ich mal schauen ob dass optimal ist.
      danke...

      zugriff auf die session in JSP erfolgt mit
      request.getSession().getAttribute("att")
      oder?

      und schreiben geht wie?

      Comment


      • #4
        wie greife ich den auf die soeben gewählte option aus, um sie dann in die session zu speichern.
        Code:
        <select id="select_01" name="AktionLogEntryTO.aktionId" size="1" onchange="callURL('parent',this,0)">
        
        				<option selected="selected" value="">Aktionsart wählen </option>
        				
        				<option id="option-1325796124" value="1">Telefonieren</option>
        				<option id="option-360566922" value="3">Kaffee trinken</option>
        
        				<option id="option-1167234208" value="5">Fasching feiern</option>
        				<option id="option-1548778834" value="7">Telefon</option>
        				<option id="option-1672430164" value="9">Besprechung</option>
        				<option id="option-379571552" value="11">Kundentermin</option>
        				<option id="option1356605236" value="13">Termin</option>
        				<option id="option-1424349356" value="15">Import</option>
        
        				<option id="option1623959936" value="17">Messekontakt: Energiesparmesse</option>
        				<option id="option-1841024960" value="19">Messekontakt: CeBIT</option>
        				<option id="option2088643302" value="21">Messekontakt: ITnT</option>
        				<option id="option-295687528" value="23">Interesse: Wei</option>
        				<option id="option-115175508" value="25">Interesse: Wein</option>
        				<option id="option-1893933820" value="27">Interesse: Bier</option>
        
        				<option id="option-1286660576" value="31">Linzer Zirkel</option>
        				<option id="option-1930371714" value="93">0123131212121214</option>
        				<option id="option-510489928" value="94">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</option>
        				
        			
        			</select>

        Comment


        • #5
          hab ich auch gedacht aber muss ich mal schauen ob dass optimal ist.
          Eine andere Möglichkeit hast du nicht. Das Ergebnis ist immer das Gleiche. Lediglich die genutzen Frameworls wie Struts, JSF u.a. erleichtern das
          request.getSession().getAttribute("att")
          Ein Blick in die Doku oder der Codevervollständigung deiner IDE....


          http://download.oracle.com/javaee/6/...etRequest.html

          EDIT zu dem 2. Posting:

          Ich sehe kein Java-Servlet oder Java-Tags. Wohin erfolgt der submit; wer bearbeitet diesen.
          Christian

          Comment


          • #6
            beim 2. post ist ja nur das select item angeführt.
            weil ich nicht weiß, wie ich auf das aktuell ausgewählte element eines select in javascript zugreife.

            lg

            Comment


            • #7
              weil ich nicht weiß, wie ich auf das aktuell ausgewählte element eines select in javascript zugreife.
              Was hat Javascript damit zu tun???? Wir sind hier bei JAVA!!!
              Christian

              Comment


              • #8
                ja aber ich muss mir ja vor dem submit der 2. form die daten der 1. form merken.

                und da dachte ich mir ich mach ein onClick und speichere vorher noch kurz mit javascript die ausgewählten items in die session.

                oder wie wäre es besser? bzw. wie gfreift man dann mit deiner variante auf die ausgewählte vom <select> zu?

                lg.

                Comment


                • #9
                  Wenn du den Unterschied zwischen Client und Server nicht kennst, würde ich mich damit mal befassen.

                  und da dachte ich mir ich mach ein onClick und speichere vorher noch kurz mit javascript die ausgewählten items in die session.
                  Willst du das nun mit Java oder Javascript realisieren?

                  oder wie wäre es besser?
                  Steht schon in der ersten Antwort und in dem Link ist zu sehen, wie der Mitforist das gemacht hat

                  wie gfreift man dann mit deiner variante auf die ausgewählte vom <select> zu?
                  Das Java-Servlet liest den Parameter "AktionLogEntryTO.aktionId" aus und speichert diesen in der Session. Die JSP liest diesen aus der Session aus und zeigt ihn an

                  EDIT
                  weil ich nicht weiß, wie ich auf das aktuell ausgewählte element eines select in javascript zugreife.
                  http://de.selfhtml.org/javascript/objekte/options.htm
                  Zuletzt editiert von Christian Marquardt; 17.11.2011, 20:25.
                  Christian

                  Comment


                  • #10
                    okey, ich habe jetzt deinen link von deinem 1. post nochmal durchgeschaut.

                    du hast ja beschrieben:

                    form1 -> aufruf servlet1 und in diesem speichere ich die werte in die session.
                    und das selbe bei form 2.

                    ABER: wenn ich form1 aufrufe, wie komme ich dann zu den werten von form2 ?
                    die werte von form2 werden ja beim submit von form1 nicht im request.getParameter mitgegeben.

                    lg.

                    Comment


                    • #11
                      ABER: wenn ich form1 aufrufe, wie komme ich dann zu den werten von form2 ?
                      die werte von form2 werden ja beim submit von form1 nicht im request.getParameter mitgegeben.
                      Brauchst du doch nicht, die stehen doch von einem "vorherigen" Aufruf noch in der Session oder sind eben leer, wenn noch kein submit dieser Form erfolgte
                      Christian

                      Comment


                      • #12
                        Originally posted by Christian Marquardt View Post
                        Brauchst du doch nicht, die stehen doch von einem "vorherigen" Aufruf noch in der Session

                        Entweder ich versteh dich nicht oder du mich nicht

                        Also...
                        Konkret:

                        Form1:
                        textfelder und selectfelder...
                        Diese werden eventuell ausgefüllt und form2 wird aber vorher submit.

                        Form2:
                        ein input für file upload.
                        wenn diese ausgelöst wird könnte eventuell in form1 schon was drinnen stehen.
                        _______________________

                        also von welchem vorherigen aufruf sprichst du?
                        der aufruf von form2 ist der 1. aufruf

                        Comment


                        • #13
                          Folgendes Demo:

                          Das Servlet
                          [highlight=java]
                          public class DemoServlet extends HttpServlet
                          {
                          private String parameter1="";
                          private String parameter2="";

                          protected void processRequest(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
                          {
                          if(request.getParameter("text1")!=null)
                          {
                          parameter1=request.getParameter("text1");
                          request.getSession().setAttribute("p1",parameter1) ;
                          }
                          if(request.getParameter("text2")!=null)
                          {
                          parameter2=request.getParameter("text2");
                          request.getSession().setAttribute("p2",parameter2) ;
                          }
                          response.sendRedirect("index.jsp");
                          }

                          @Override
                          protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
                          {
                          processRequest(request,response);
                          }

                          @Override
                          protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
                          {
                          processRequest(request,response);
                          }

                          }

                          [/highlight]

                          Die index.jsp

                          [highlight=java]
                          <%@page contentType="text/html" pageEncoding="ISO-8859-1"%>
                          <!DOCTYPE html>
                          <html>
                          <head>
                          <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
                          <title>Demo</title>
                          </head>
                          <body>
                          <%
                          String p1="";
                          String p2="";
                          if(session.getAttribute("p1")!=null)
                          {
                          p1=(String)session.getAttribute("p1");
                          }
                          if(session.getAttribute("p2")!=null)
                          {
                          p2=(String)session.getAttribute("p2");
                          }
                          %>
                          <h1>Demo</h1>
                          <p>Form1</p>
                          <form name="form1" action="DemoServlet" >
                          <input type="text" name="text1" value="<%=p1%>" size="30" />
                          <input type="submit" value="Submit1" name="submit1" />
                          </form>
                          <p>Form2</p>
                          <form name="form2" action="DemoServlet" >
                          <input type="text" name="text2" value="<%=p2%>" size="30" />
                          <input type="submit" value="Submit2" name="submit2" />
                          </form>
                          </body>
                          </html>

                          [/highlight]

                          Ein einmal per submit übermittelter Wert bleibt erhalten

                          WebApplication1.zip


                          der aufruf von form2 ist der 1. aufruf
                          Dann werden die Auswahl vom Form1 nicht übernommen. Wie sollten sie auch. Ist eine extra Form, für die kein submit erfolgte. Erst wenn Form1 auch mal ein submit bekommt, werden die Daten gespeichert
                          Christian

                          Comment


                          • #14
                            danke für das beispiel, aber du rufst in beidem formen das selbe servlte auf. ich will ja mit jeder form ein anderes aufrufen.

                            und wen du jetzt das servlet von form1 aufrufst gibt er dir den wert des textfelds1 mit, aber nich den wert von textfeld2. Dieses textfeld2 ist ja in der form2.

                            und das ist das problem.

                            Comment


                            • #15
                              danke für das beispiel, aber du rufst in beidem formen das selbe servlte auf. ich will ja mit jeder form ein anderes aufrufen.
                              Das spielt doch keine Rolle. Die Session ist die gleiche

                              und wen du jetzt das servlet von form1 aufrufst gibt er dir den wert des textfelds1 mit, aber nich den wert von textfeld2. Dieses textfeld2 ist ja in der form2.

                              und das ist das problem.
                              Nein, das ist nicht das Problem. Es werden IMMER nur die Daten übermittelt, die zu der FORM gehören, die den submit ausgelöst haben.

                              Ansonsten hat es keinen Sinn 2 zu benutzen. Wenn du alle Daten willst, benutze nur eine Form
                              Christian

                              Comment

                              Working...
                              X