2012-12-31 77 views
9

我已經查看過有關此主題的以前的問題,但我的問題尚未解決。將javascript數組傳遞給servlet

我從javascript傳遞數組到servlet。

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]); 
    } 
} 

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"); 

使用上面的代碼我得到消息「行動爲空」

如果我嘗試

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

我得到語法錯誤:

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

請讓我知道如果有什麼錯誤的代碼。

+0

哪裏是調用這個servlet的HTML或JavaScript代碼? – home

+0

你可以發佈代碼,你如何發送動作數組到servlet ... –

+0

Bhushan

回答

6

,你可以只是簡單的獲得與數組名數組...

字符串操作[] = request.getParameterValues( 「行動」);

+3

除非我在名稱的末尾添加括號,即(「action []」),否則Tomcat不會識別該參數。 – Amalgovinus

1

您不能傳遞一個java數組作爲參數,因爲它是一個結構。最好的方法是將它序列化爲像jSon這樣的字符串對象。您可以使用JSON.stringify。簡單而高效。正如你可以在服務器中序列化一樣,這非常有用。

0

與形式的動作過關Javascript數組變量來發送值Servlet中,然後用

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