मैं वसंत 3.1.2 एप्लिकेशन चला रहा हूं। मेरे पास कई विधियों के साथ एक रेस्टस्टल सर्वलेट है। जीईटी विधियां शानदार काम कर रही हैं (@PathVariables
मिलान, स्वीकार किए गए हेडर आदि के आधार पर जेएसओएन या एक्सएमएल के लिए सही तरीके से प्रतिक्रियाएं प्रतिक्रियाएं) 100% समय।स्प्रिंग एक POST पैरामीटर स्वीकार नहीं करता है जब तक कि @RequestParam "आवश्यक = झूठी"
हालांकि पोस्ट विधि बस काम नहीं कर रही है। कनवर्ट्स और हर दूसरे स्प्रिंग पहलू के साथ गड़बड़ करने के घंटों के बाद मुझे मिल सकता है (सभी टिंकरिंग उलट), मैंने required
फ़ील्ड को @RequestParam
में संकुचित कर दिया।
@RequestMapping (value = "/bogus",
method = POST)
public @ResponseBody PassResponse bogus (
@RequestParam (value = "test", required = false) String test) {
// Just some handy garbage objects that marshal to JSON/XML
UserResponse user = new UserResponse();
user.setName (test);
AccountDetail detail = new AccountDetail (user,null);
return new PassResponse (detail);
}
= आवश्यक झूठी:: यह एक सरल बनाया परीक्षा पद्धति मैं जांच करने के लिए प्रयोग कर रहे है सब कुछ काम करता है (पैरामीटर प्राप्त किया और व्याख्या की है)। मैं यह काम करने की उम्मीद बिल्कुल के रूप में
आवश्यक = सच: (या निर्दिष्ट नहीं है, क्योंकि यह डिफ़ॉल्ट है) मैं लगातार संदेश मिलता है:
" MissingServletRequestParameterException आवश्यक स्ट्रिंग पैरामीटर 'परीक्षण' मौजूद नहीं है"क्लाइंट साइड दृश्य:
आवश्यक = सच
Request URL:http://localhost:8080/internal-project/rest/bogus
Request Method:POST
Status Code:400 Bad Request
Request Headersview source
Accept:application/json
Connection:keep-alive
Content-Length:12
Host:localhost:8080
Request Payload
test=LALALAA
Response Headersview source
Connection:close
Content-Length:971
Content-Type:text/html;charset=utf-8
Date:Wed, 24 Oct 2012 18:41:05 GMT
Server:Apache-Coyote/1.1
आवश्यक = false
Request URL:http://localhost:8080/internal-project/rest/bogus
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:application/json
Connection:keep-alive
Content-Length:12
Host:localhost:8080
Request Payload
test=LALALAA
Response Headersview source
Content-Type:application/json;charset=UTF-8
Date:Wed, 24 Oct 2012 18:44:03 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked
जब required
टॉगल और मैं देख सकता हूँ पैरामीटर पारित किया जा रहा है यह ठीक उसी टेस्ट स्वीट चलाया जा रहा है। जब पैरामीटर वैकल्पिक होता है, तो वसंत इसे सही तरीके से संभालता है।
यदि कोई इस से पहले चला गया है या कोई विचार है तो मुझे उन्हें सुनना अच्छा लगेगा। आवश्यक पैरामीटर को वैकल्पिक के रूप में चिह्नित करना, भले ही यह काम करता है, भले ही मैं इसे टिप्पणी करता हूं, भयानक स्वयं दस्तावेज है। इसके अलावा व्यवहार मुझे थोड़ा परेशान कर रहा है। उम्मीद है कि मैंने कहीं कुछ खराब कर दिया है ...
आप सही हैं! आपके द्वारा सुझाए गए 'सामग्री-प्रकार' को सेट करने से वास्तव में मानचित्रण व्यवहार को सामान्यीकृत किया गया था। मुझे नहीं पता कि जब मैं इसे सेट करने में विफल रहा, तो 'आवश्यक' फ़ील्ड ने अलग व्यवहार को क्यों ट्रिगर किया, लेकिन यह एक छोटा मामला है। अपना समय देने के लिए धन्यवाद! – node42