2012-12-31 14 views
5

प्ले 2 का उपयोग करके मैं एक साधारण आरईएसटी एपीआई महसूस कर रहा हूं, आउटपुट सादा पाठ है। मेरे टेम्पलेट इस तरह दिखता है:टेम्पलेट आउटपुट पर अनावश्यक लाइनब्रेक्स निकालें?

@(items: Map[String,String]) 
@for((key, value) <- items) { 
@value 
@key 
} 

नियंत्रक में:

return ok(views.html.bla.render(itemsMap)).as("text/plain"); 

यह निम्न उत्पादन देता है:

(empty line) 
(empty line) 
value 
key 
(empty line) 
value 
key 

मैं पहली बार 2 खाली लाइनों से छुटकारा पाने के लिए चाहते हैं - है यह संभव है?

पहली पंक्ति में डालने के लिए शीर्ष पर खाली लाइनों में से एक को हटा दिया जाता है, हालांकि अभी भी एक बना रहता है और पहली पंक्ति में टेम्पलेट को पढ़ने में कठिनाई होती है): किसी भी संकेत के लिए धन्यवाद!

उत्तर

4

सबसे पहले, यदि आप सादा पाठ का उपयोग करें, आप txt टेम्पलेट्स का उपयोग करना चाहिए (bla.scala.txt)। वे स्वचालित रूप से text/plain; charset=utf-8 सामग्री प्रकार भी सेट करते हैं।

सामग्री ट्रिम करने के लिए, आप सीधे प्रदान की गई सामग्री वापस कर सकते हैं:

return ok(views.txt.bla.render(itemsMap).body().trim()); 

मामले में आप HTML सामग्री को रखना चाहते हैं तो आप इस मैन्युअल रूप से बदलने की जरूरत चाहते हैं: अच्छी तरह से

return ok(views.html.ble.render().body().trim()).as("text/html; charset=utf-8"); 
+0

बिल्कुल सही, जो समस्या को हल करता है :-) ग्रहण ने मुझे प्रस्तुत करने के बाद कोई तरीका नहीं दिया है (आइटम्स मैप), लेकिन .body()। Trim() कम काम करता है :-) बहुत बहुत धन्यवाद! –

+0

@ मैरियस एचटीएमएल के शरीर को संशोधित करने से इसे 'टेक्स्ट/सादे' के रूप में वापस करने का कारण बनता है, इसलिए मैंने 'टेक्स्ट/एचटीएमएल' की सही वापसी के लिए एक नमूना जोड़ा, उम्मीद है कि आपको कोई फर्क नहीं पड़ता। – biesior

+0

इरादा 'टेक्स्ट/सादे 'वापस करने का इरादा था, हालांकि ... –

1

यदि आप मानचित्र से सादा पाठ आउटपुट उत्पन्न कर रहे हैं, तो आप बिल्कुल विचारों का उपयोग क्यों करते हैं? वे आपके मामले में कोई लाभ नहीं देते हैं।

आप शुद्ध स्कैला में रेंडर फ़ंक्शन लिख सकते हैं। कुछ की तरह

items.map{ case (k,v) => v + '\n' + k}.mkString('\n') 
+0

, में अगर मुझे कभी एक्सएमएल या एसएचएच पर स्विच करना चाहिए। इस तरह, जेनरेट की गई फ़ॉर्मेटिंग सामग्री अभी भी मेरी राय में बेहतर है :-) –

+0

यदि आप एक्सएमएल पर स्विच करते हैं, तो आप स्कैला के एक्सएमएल सपोर्ट का उपयोग कर सकते हैं। यदि आप किसी और चीज पर स्विच करते हैं - जैसे JSON - आप JSON लाइब्रेरी का उपयोग कर सकते हैं। Play's templating (आश्चर्य!) टेम्पलेट्स के लिए अच्छा है। –

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