2015-02-24 10 views
13

में वैकल्पिक निकाय के साथ @RequestBody का उपयोग करें वसंत में @RequestBody एनोटेशन का उपयोग करते समय मैं आरईएसटी एपीआई कॉल में बॉडी वैकल्पिक कैसे बना सकता हूं?नवीनतम वसंत v4

वसंत के नवीनतम संस्करण के साथ, यदि आप @RequestBody एनोटेशन का उपयोग करते हैं, तो यह क्लाइंट को इसे वैकल्पिक रूप से बिना हर समय शरीर भेजने के लिए बनाता है।

मैंने @RequestBody (required=false) की कोशिश की लेकिन यह & काम नहीं करता है, फिर भी मेरा अनुरोध शून्य के रूप में आता है।

मैं शरीर को अनिवार्य किए बिना उचित आवश्यक वस्तु में परिवर्तित करने का अनुरोध कैसे करूं?

उदाहरण के लिए:

@RequestMapping(value="/add/employee", method=RequestMethod.POST) 
public void addEmployee(@RequestBody Employee employee){ 
    ..... 
} 

यहाँ, यहाँ मैं पोस्ट लेकिन शरीर के बिना उपयोग करते हुए कर्मचारी जोड़ना चाहते हैं। मैं उसको कैसे करू? वसंत नवीनतम संस्करण त्रुटि शरीर को गायब करता है अगर मैं खाली शरीर भेजता हूं ...

धन्यवाद!

उत्तर

19

@ सैंटोश, मुझे यकीन नहीं है कि आप किस तर्क का जिक्र कर रहे हैं। माइक ने पहले ही उल्लेख किया है कि उन्होंने @RequestBody (required=false) का उपयोग करने का प्रयास किया और अनुरोध अभी भी शून्य था। हो सकता है कि आप & विस्तृत करें उदाहरण दें।

@ माइक, शायद आप एक और अलग कनवर्टर करने का प्रयास कर सकते हैं जो आपके उद्देश्य को पूरा करेगा।

नोट: मैंने वसंत v4.1.6 & के साथ एक ही समस्या देखी है, माइक इसका उपयोग कर सकता है क्योंकि उसने उल्लेख किया है कि वह नवीनतम संस्करण का उपयोग कर रहा है।

3

मुझे लगता है कि आप 3.2 से ऊपर वसंत संस्करण का उपयोग कर रहे हैं क्योंकि संस्करण के साथ कोई समस्या थी। @RequestBody should have a required parameter to allow a request body to be optional

लिंक Spring @RequestBody Anotation

@RequestBody शरीर लेता है और तर्क आवश्यक जो डिफ़ॉल्ट रूप से सच है निम्नलिखित पर एक नज़र डालें। गलत पर यह निर्दिष्ट करने में मदद मिलेगी आप

सार्वजनिक सार बूलियन आवश्यक

शरीर सामग्री की आवश्यकता है या नहीं। डिफ़ॉल्ट सत्य, कोई शरीर सामग्री नहीं होने पर को अपवाद के लिए अग्रणी है। यदि आप शरीर की सामग्री शून्य हो जाते हैं तो आप इसे शून्य पर स्विच करना पसंद करते हैं।