2012-12-31 19 views
9

पर जावास्क्रिप्ट सरणी पास करने के लिए मैंने SO पर इस विषय पर पिछले प्रश्नों को देखा है, लेकिन मेरी समस्या अभी तक हल नहीं हुई है।सर्वलेट

मैं जावास्क्रिप्ट से सर्वलेट में सरणी पास कर रहा हूं।

जावास्क्रिप्ट कोड:

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

सर्वलेट कोड:

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

का उपयोग कहां है HTML या जावा स्क्रिप्ट कोड है कि सर्वलेट कॉल? – home

+0

क्या आप कोड को पोस्ट कर सकते हैं कि आप servlet में एक्शन एरे कैसे भेज रहे हैं ... –

+0

<इनपुट प्रकार = "सबमिट करें" value = " अद्यतन करें "id =" btnUpdate "onclick =" passValues ​​() "name =" btn "> – Bhushan

उत्तर

6

आप बस सरणी के नाम के साथ सरणी प्राप्त कर सकते हैं ...

स्ट्रिंग कार्यों [] = request.getParameterValues ​​("कार्रवाई");

+3

टॉमकैट पैरामीटर को पहचान नहीं रहा है जब तक कि मैं नाम के अंत में ब्रैकेट जोड़ता हूं, यानी ("action []") .. – Amalgovinus

1

आप पैरामीटर के रूप में जावा सरणी पास नहीं कर सकते, क्योंकि यह एक संरचना है। सबसे अच्छा तरीका यह है कि इसे जेएसओएन जैसी स्ट्रिंग ऑब्जेक्ट में क्रमबद्ध करना है। आप JSON.stringify का उपयोग कर सकते हैं। सरल और कुशल। जैसा कि आप सर्वर में भी क्रमबद्ध कर सकते हैं, यह बहुत उपयोगी है।

0

प्रपत्र कार्रवाई के साथ दर्रा जावास्क्रिप्ट सरणी चर सर्वलेट से मान भेजने का, और फिर

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