2016-07-21 11 views
0

Ich versuche, eine Übergabeschaltfläche zu verwenden, um 2 Parameter userId und friendId zu übergeben, die jsp in dasselbe Servlet verwenden. Ich bin in der Lage zu erhalten friendId, aber ich bin nicht in der Lage, die userId zu erhalten.Verwenden von onclick-Ereignis zum Übermitteln von 2 Parametern in ein selbes Servlet

function anotherPageServlet(servletName) { 

    document.forms[0].method = "post"; 
    document.forms[0].action = servletName; 
    document.forms[0].submit(); 
} 

function anotherPageServlet1(servletName) { 

    document.forms[0].method = "post"; 
    document.forms[0].action = servletName; 
    document.forms[0].submit(); 
} 

<input style="color:#3333ff" 
     type="submit" 
     class="rsubmit" 
     value="<%= retrieving.getDisplayname()%> :" 
     onclick="anotherPageServlet('ViewingFriendServlet?stringParameter=<%= session.getAttribute("userId") %>'), 
anotherPageServlet1('ViewingFriendServlet?stringParameter=<%=retrieving.getoID() %>')" 
> 
+0

Gibt es einen besonderen Grund, warum Sie zwei identische JS-Funktionen sind mit? –

+0

@Hubert Grzeskowiak gibt es keinen Grund dafür. Mein Hauptmotiv, die 2 Parameter userID und friendId zusammen an das Servlet zu übergeben. – qcc

Antwort

0

Sie wahrscheinlich nur brauchen, um die Zitate zu entkommen:

onclick="anotherPageServlet('ViewingFriendServlet?stringParameter=<%= session.getAttribute(\"userId\") %>'), 
anotherPageServlet1('ViewingFriendServlet?stringParameter=<%=retrieving.getoID() %>')" 

Ich bin nicht zu JSP verwendet, aber in JSF würden Sie lieber Werte zuweisen auf eine Anfrage-scoped Bohne und dann eine Funktion aufrufen das funktioniert mit dieser Bean, anstatt diese Argumente direkt zu übergeben.

EDIT:

Onclick Funktionen zuerst definieren, dann rufen Sie nur die einfache Referenz.

function servletFoo() { 
    anotherPageServlet('ViewingFriendServlet?stringParameter=<%= session.getAttribute("userId") %>'); 
    anotherPageServlet1('ViewingFriendServlet?stringParameter=<%=retrieving.getoID() %>'); 
} 

Dann in Ihrem HTML:

<input ... onclick="servletFoo()" /> 
+0

Entschuldigung, es gibt einen Syntaxfehler. Gibt es eine andere Möglichkeit, diese Werte gleichzeitig an das Servlet zu übergeben? – qcc

+0

Entschuldigung für den Syntaxfehler. kann es hier nicht testen. Vielleicht möchten Sie die JS-Funktionen im Skriptblock definieren und nur die neu erstellte Funktion an onclick übergeben. Auf diese Weise haben Sie eine Ebene weniger verschachtelte Strings. Siehe aktualisierte Antwort –