2012-12-31 12 views
9

Ho già cercato domande su questo argomento su SO, ma il mio problema non è ancora risolto.Passando javascript array a servlet

Sto passando l'array da javascript a servlet.

codice JavaScript:

var action = new Array(); 
function getProtAcionValues(rowNo,columnCount) 
{ 
    for(var j=0;j<columnCount;j++) 
    { 
     action[j] = document.getElementById('textActions'+rowNo+''+j).value; 
     alert(action[j]); 
    } 
} 

Codice Servlet:

String actions[] = request.getParameterValues("action[]"); 
if(actions!=null) 
for(int i=0;i<actions.length;i++) 
{ 
    System.out.print(" Action: "+actions); 
} 
else 
    System.out.println("Action is null"); 

Utilizzando sopra il codice sto ottenendo il messaggio "Azione è nullo".

E se provo

String actions[] = request.getParameterNames("action[]"); 

sto ottenendo Errore di sintassi:

The method getParameterNames() in the type ServletRequest is not applicable for the arguments (String) 

Si prega di farmi sapere se c'è qualcosa di sbagliato nel codice.

+0

Dov'è il codice HTML o JavaScript che chiama il servlet? – home

+0

Puoi pubblicare il codice di come stai inviando l'array azione al servlet ... –

+0

Bhushan

risposta

6

si può semplicemente ottenere la matrice con il nome della matrice ...

azioni string [] = request.getParameterValues ​​("azione");

+3

Tomcat non riconosce il parametro a meno che non aggiunga parentesi alla fine del nome, cioè ("azione []") .. – Amalgovinus

1

Non è possibile passare un array java come parametro, in quanto è una struttura. Il modo migliore è serializzarlo in un oggetto stringa come un jSon. È possibile utilizzare JSON.stringify. Semplice ed efficiente. Come puoi serializzare anche nel server, è molto utile.

0

Passo Javascript variabile array con l'azione form per inviare valori di servlet, e quindi utilizzare

String[] darray=request.getParameterValues("variable name used with link");