2009-08-05 11 views
0

Ich habe eine ID, die ich in der nächsten jsp brauche, sobald der Benutzer auf eine Schaltfläche klickt. Ich versuche, die folgenden zu tun:Übergeben Sie einen Parameter von einem jsp zu einem anderen mit form.action

FirstJSP.jsp:

Funktion GetSecond() {var frm = document.getElementById ("frm"); frm.action = "** zweite.jsp? Id = myId;" ** frm.submit(); }

... form id = "frm" ..... input type = "button" value = "Next" Onclick = "GetSecond()"/

.... ..

Dieser Code bringt mich auf meine zweite Seite, aber wenn ich versuchte, auf die ID zuzugreifen, gibt es mir einen Fehler, da die ID null ist.

ich auf die ID in der zweiten Seite von:

final Lang passedId = Long.parseLong (request.getParameter ("id"));

Ich denke, ich übergebe den Parameter nicht richtig, aber ich weiß nicht, wie es geht. Irgendwelche Ideen? Ich danke dir sehr!

+0

Sie haben nicht angegeben, aber ich nehme an, dass die Aktion Ihres Formulars POST ist. Klingt so, als würden Sie GET Style Params (dh.? Id = myId) mit POST mischen. Weiß nicht ob das funktioniert, müsste es testen. –

Antwort

0

Nun, wenn das oben angegebene Codefragment buchstäblich das ist, was Sie schreiben, dann setzen Sie ID auf den Text "myId". Wenn Sie versuchen, dies als Long zu analysieren, wird eine Ausnahme ausgelöst, weil die Zeichenfolge keine gültige Zahl ist - sie enthält keine Ziffern.

nehme ich an, was Sie wollen sagen, etwas mehr wie

ist

frm.action = "second.jsp? Id =" + myid

Unter der Annahme, dass myid irgendwo definiert wurde und eine Zahl.

+0

Sie haben Recht Jay. Aber wenn ich versuchte, nur myId hinzuzufügen, ist die Variable "nicht aufgelöste Variable oder Typ". myId ist am Anfang definiert als <% final Long myId = Long.parseLong (request.getParameter ("id")); %> Ich habe die Aktionslinie geändert in frm.action = "second.jsp? Id =" + <%=myId%>; und arbeiten immer noch nicht –

1

Ok ... ich meinen Fehler gefunden ... wans't ich jede Methode in meiner Form verwenden, so aktualisiere ich es

form name="frm" method="post" 

Auch, wie ich in meinem letzten Note erwähnt, die Aktion Linie ist jetzt

frm.action="second.jsp?id="+<%=myId%>; 

Es funktioniert jetzt!

+0

Sie haben es herausgefunden, bevor ich auf Ihre Antwort antworten konnte? Cool. Dann kann ich aufhören darüber nachzudenken und mein Nickerchen machen. – Jay

+0

Übrigens, wenn das HTML-Formularelement kein 'method'-Attribut angegeben hat, wird es standardmäßig auf "GET" gesetzt. In diesem Fall müssten Sie stattdessen Servlet's doGet() implementieren. – BalusC

Verwandte Themen