2012-01-03 18 views
6

मैं अपने पैरों को गीले खेलने के लिए एक साधारण एप्लिकेशन बनाने के साथ चारों ओर घूम रहा हूं! 2.0। मैं अपने संसाधनों को एक्सएमएल (एटीओएम फ़ीड, वास्तव में) और जेएसओएन के रूप में सेवा करने में सक्षम होना चाहता हूं। मुझे पता है कि इसे 1.2.x में कैसे करना है, लेकिन इस तरह से 2.0 के साथ काम नहीं लग रहा है। क्या कोई जानता है इसे कैसे करना है? उदाहरणों की बहुत सराहना की जाएगी।प्ले के साथ एक्सएमएल और जेएसओएन कैसे सेवा करें! 2.0

उत्तर

11

JSON के लिए मैं इस सवाल को देखने के लिए आप की सिफारिश करेंगे How to render JSON response in Play framework v2.0 (latest build from GIT)

एक्सएमएल कहीं अधिक सरल जब से तुम सिर्फ इस तरह के कोड के साथ परिणाम लौट कॉल कर सकते हैं है:

Ok(Xml(xmlString)) 

लेकिन क्लीनर भी तरह से, फ़ॉट शायद views/xmlmdo.scala.xml तरह के तहत अपने स्वयं के टेम्पलेट लिखने के लिए है इस कार्यक्षमता का उपयोग किया जा सकता है

@(mdo:MyDomainObject) 
<?xml version="1.0" encoding="utf-8"?> 
<MyDomainObject> 
    <name>@mdo.name</name> 
    <desc>@mdo.desc</desc> 
    <kws> 
    @mdo.keywords map { k=> 
    <kw>k</kw> 
    } 
    </kws> 
</MyDomainObject> 

फिर अपने नियंत्रक में

def c = Action { 
    val o = MyDomainObject("mine", "for example", List("stack", "over", "flow")) 
    Ok(views.xml.mdo(o)) 
} 

अन्यथा, आप शायद समान toXml

+0

मैं तुम्हें सही का निशान दे देंगे एक marshaling पुस्तकालय की मदद से toJson को समारोह है, लेकिन यहाँ एक आवश्यक बात करने की आवश्यकता है आपने जो उल्लेख किया है उसके अलावा करो। वैध होने के लिए, आपकी पहली पंक्ति '@ (पोस्ट: सेक [पोस्ट]) '। यदि आप ऐसा नहीं करते हैं, तो आपकी पहली पंक्ति एक एक्सएमएल घोषणा नहीं होगी जैसे इसे करना चाहिए। बग? शायद। – geowa4

+0

नहीं यह लाइन अनिवार्य है! मैं बस इसका जिक्र भूल गया। मुझे इसे जोड़ने दो। असल में यह एक्सएमएल स्पेक का हिस्सा है, यह लाइन हमेशा यूटीएफ -8 में एन्कोड की जाती है और यह जानने के लिए पार्सर्स द्वारा उपयोग किया जाता है कि दस्तावेज़ में कौन सी एन्कोडिंग का उपयोग किया जाता है (और एक्सएमएल संस्करण, लेकिन वास्तव में इसका उपयोग नहीं किया जाता है। ..) –

+0

समस्या अभी भी आपके समाधान में मौजूद है। आपके जेनरेट एक्सएमएल की पहली पंक्ति वास्तव में खाली है। इसे सही तरीके से प्रस्तुत करने के लिए पैरामीटर के तुरंत बाद आपको घोषणा करना होगा। यह मेरे लिए एक बग है। – geowa4

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