2011-05-30 13 views
15

पर वापस लौटें मैं वसंत नियंत्रक से जेएसओएन को एक दृश्य या ModelAndView के रूप में कैसे वापस कर सकता हूं? मुझे @ResponseBody एनोटेशन का उपयोग करने में कोई दिलचस्पी नहीं है। क्या ऐसा करने का कोई और तरीका है?वसंत: नियंत्रक से जेएसओएन को मॉडल एंडवीयू

+0

वसंत में 'ContentNegotiatingViewResolver' अपग्रेड करना चाहते हैं, जो प्रत्यय या' स्वीकार करें 'शीर्षलेख के आधार पर गतिशील रूप से "दाएं" दृश्य को वापस कर सकता है। [कड़ी] (http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-multiple-representations)। आप 'मॉडल और व्यू' में मॉडल और दृश्य दोनों प्रदान करते हैं, स्प्रिंग को दृश्य रिज़ॉल्यूशन करने दें। – Hong

उत्तर

0

आप आउटपुट स्ट्रीम में जेसन स्ट्रिंग लिखने के लिए org.codehaus.jackson.map.ObjectMapper कक्षा का उपयोग कर सकते हैं। अपने नियंत्रक की विधि में निम्न कोड स्निपेट का उपयोग करें:

ObjectMapper mapper = new ObjectMapper(); 
mapper.writeValue(outputStream, model); 
outputStream.flush(); 
+0

यदि स्प्रिंग का आपका संस्करण काफी अधिक है, तो मैपिंग जैक्सन जेसन व्यू ऑब्जेक्ट मॉडल को क्रमबद्ध करने के लिए जैक्सन के ऑब्जेक्टमैपर का उपयोग करता है। संदर्भ http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/view/json/MappingJacksonJsonView.html –

27

हाँ, आप एक MappingJacksonJsonView वापसी या mav.setView(new MappingJacksonJsonView()) का उपयोग कर एक ModelAndView वस्तु को असाइन कर सकें।

अपडेट: स्प्रिंग 4 मैपिंग जैकसन जेसन व्यू में deprecated है। आप MappingJackson2JsonView

+7

विस्तृत करने के लिए, आप MOdelAndView के दृश्य नाम को सेट कर सकते हैं ModelAndView के स्थान पर एक JSON ऑब्जेक्ट वापस करने के लिए मैपिंग जैक्सन जेसन व्यू का एक उदाहरण। एक उदाहरण इस तरह दिखेगा: 'मॉडल और दृश्य एमएवी = नया मॉडल एंडव्यू (नया मैपिंग जैक्सन जेसन व्यू()); mav.addObject ("key1", "value1"); mav.addObject ("key2", "value2"); ' लौटने 'mav' फिर फॉर्म के JSON ऑब्जेक्ट को आउटपुट करेगा: ' {"key1": "value1", "key2": "value2"} ' – JCoster22

+1

अद्यतन: मैंने [मैपिंग जैक्सन 2 जेसन व्यू] का इस्तेमाल किया [http://docs.spring.io/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/view/json/MappingJackson2JsonView.html) के लिए ऊपर। – JCoster22

संबंधित मुद्दे