java - How to access form parameters using RestEasy REST.Request? -
मेरे पास मेरा फ़ॉर्म नीचे है:
& lt; form id = "form1" name = "Form1" & gt; & LT; fieldset & gt; & LT; ol & gt; & Lt; li & gt; & LT; लेबल & gt; परियोजना: & lt; / लेबल & gt; & Lt; चुनें आईडी = "प्रोजेक्ट" नाम = "प्रोजेक्ट" आवश्यक & gt; & lt; / select & gt; & Lt; / li & gt; & Lt; / ol & gt; & Lt; इनपुट प्रकार = "बटन" onclick = "अनुरोध ();" & gt; & Lt; / fieldset & gt; & Lt; / प्रपत्र & gt;
मैंने इनपुट बटन के onclick ईवेंट पर एक अनुरोध () फ़ंक्शन बनाया है। मैंने इनपुट प्रकार को बटन में बदल दिया क्योंकि मैं पृष्ठ को पुनः लोड नहीं करना चाहता था।
एक कस्टम बाकी अनुरोध बनाने के लिए अनुरोध फ़ंक्शन RestEasy REST.Request वर्ग का उपयोग करता है। मैं REST.Request ऑब्जेक्ट पर setEntity इस्तेमाल किया है, लेकिन मुझे नहीं पता है कि सर्वर पक्ष पर उस जानकारी का उपयोग कैसे करना है।
नीचे अनुरोध फ़ंक्शन है:
अनुरोध: फ़ंक्शन () {var myRequest = new REST.Request (); Var form1 = document.forms ["form1"]; Var प्रोजेक्टटिक्ट = फॉर्म 1। एलेमेंट्स ["प्रोजेक्ट"]। मान; MyRequest.setURI (REST.apiURL + "/ अनुरोध / आइटम"); myRequest.setMethod ( "GET"); myRequest.setEntity ({परियोजना: projectTxt}); MyRequest.execute (फ़ंक्शन (स्थिति, अनुरोध, इकाई) {यदि (स्थिति === 200 & amp; अनुरोध। फ़ायरस्टेट === 4) {// इकाई हमेशा शून्य सत्रः Storage.setItem ("प्रोजेक्ट", इकाई); Console.log ("इकाई =" + इकाई);}}); },
उपरोक्त कोड में, myRequest.execute () को पारित समारोह में इकाई हमेशा रिक्त है।
यहां जावा कोड है:
<प्री> @ पाथ ("आइटम") @GET सार्वजनिक स्ट्रिंग आइटमफ़ॉर्मेट अनुरोध (@ फार्मपाराम ("प्रोजेक्ट") स्ट्रिंग प्रोजेक्ट) {// परियोजना हमेशा रिक्त वापसी है "प्रोजेक्ट" + प्रोजेक्ट; }
उपरोक्त कोड में, परियोजना शून्य है। मैंने @QueryParam का उपयोग करने की कोशिश की है और वह भी काम नहीं करता है क्या मैं इसे गलत तरीके से उपयोग कर रहा हूं या क्या मुझे याद आ रही है? मैंने जावास्क्रिप्ट और जावा कोड दोनों में @GET को @ POST बदलकर बहुत परीक्षण और त्रुटि की है। जावा कोड में @ कंस्यूम ("एप्लिकेशन / एक्स-www-फॉर्म-यूआरएलएक्सोडेड") को जोड़ने की कोशिश की है और वह काम नहीं करती।
myRequest.addQueryParameter ("प्रोजेक्ट", प्रोजेक्टटेक्स्ट); मैं काम करने के लिए केवल इतना ही काम करता हूं कि क्वेरी मानकों को REST.request ऑब्जेक्ट में जोड़ रहा है।
और फिर मैं (@ QueryParam ("परियोजना") स्ट्रिंग परियोजना का उपयोग करके इसे पुनर्प्राप्त करने में सक्षम हूं ।
धन्यवाद! < / P>
आप का उपयोग कर रहे हैं GET
अनुरोध विधि के रूप में एक GET
डेटा को पुनर्प्राप्त करने का उद्देश्य है और इसलिए आप किसी संस्था को पास नहीं करते हैं। अगर आप किसी चयनित प्रोजेक्ट के डेटा को पढ़ना चाहते हैं तो आप एक @QueryParam
के साथ संयोजन के साथ GET
का उपयोग कर सकते हैं। लेकिन फिर आप एक इकाई पास नहीं है। बस queryParameter जोड़ें:
myRequest.addQueryParameter ('project', projectTxt);
यदि आप डेटा को सर्वर से पास करना चाहते हैं, तो आपको POST
(ग्राहक और सर्वर कोड में) अनुरोध के तरीके को बदलना चाहिए। इसके अलावा आपकी इकाई JSON है लेकिन आपके सर्वर कोड को @ फ़ॉर्मपाराम
की उम्मीद है। REST.Request
ऑब्जेक्ट में एक addForm
है और addFormParameter
विधि जोड़ें। तो निम्न में से एक को भी कार्य करना चाहिए (untested):
myRequest.addForm ('form1', form1);
या
myRequest.addFormParameter ('प्रोजेक्ट', प्रोजेक्टटेक्स्ट);
Comments
Post a Comment