2011-06-17 9 views
6

क्या परियोजना स्काला विकल्प के साथ बनाई गई है जब जावा फ्रेम और स्काला नियंत्रकों और प्ले फ्रेमवर्क परियोजना में विचार दोनों संभव है?प्ले फ्रेमवर्क में स्कैला प्रोजेक्ट में जावा नियंत्रक?

उत्तर

4

हां, एक प्ले एप्लिकेशन में जावा और स्कैला को मिलाकर संभव है। आप जावा और स्कैला नियंत्रकों और ग्रोवी और स्कैला टेम्पलेट्स दोनों को मिश्रित कर सकते हैं। नीचे दिए गए निर्देशों का परीक्षण प्ले के साथ किया गया है! 1.2.2RC1।

मैं app/controllers में अपने जावा और स्कैला नियंत्रकों दोनों को रखकर शुरू करूंगा। जावा निश्चित रूप से प्रति फ़ाइल एक वर्ग तक सीमित है, लेकिन स्कैला पैकेज में फ़ाइलें और निर्देशिकाओं से बंधे नहीं हैं, इसलिए आप अपनी स्कैला फ़ाइल को कोई नाम दे सकते हैं; जब तक आप पैकेज को

package controllers 

Play को खोजने में उन्हें परेशानी नहीं होनी चाहिए।

स्कैला टेम्पलेट .scala.html और सादे .html में ग्रोवी टेम्पलेट्स में समाप्त होना चाहिए। एक स्काला नियंत्रक में, आप स्काला Template("templatename").

मैं एक जावा नियंत्रक से एक स्काला टेम्पलेट प्रतिपादन की कोशिश कभी नहीं की है साथ html.templatename और ग्रूवी टेम्पलेट के साथ टेम्पलेट्स प्रस्तुत करना है, लेकिन मैं नहीं दिख रहा है कारण है कि यह संभव नहीं होना चाहिए।

अंत में, यहां useful reminder on Scala/Java interop है।

+0

धन्यवाद। तो ऐसा लगता है कि स्काला फ़ाइल ऐप/नियंत्रकों के तहत कहीं भी हो सकती है, इसके बावजूद इसकी पैकेज घोषणा। लेकिन जावा फाइलों को पैकेज के अनुसार निर्देशिका संरचना का पालन करना होगा। – ace

+0

वैसे मैंने स्कैला प्रोजेक्ट में जावा नियंत्रक को आजमाया नहीं है, लेकिन मैंने जावा क्लास की कोशिश की है जो एक नियंत्रक नहीं है बल्कि एक सेवा वर्ग की तरह है लेकिन लटकता है और काम नहीं करता है, भले ही मैं जावा फ़ाइल डालूं और यहां तक ​​कि इस्तेमाल नहीं किया जा रहा हो। – ace

+0

यह अजीब लगता है। हो सकता है कि यह बेहतर होगा यदि आप इस समस्या के अधिक विस्तृत विवरण के साथ एक और प्रश्न पूछते हैं (आपने वास्तव में उस जावा फ़ाइल को कहां रखा था?) –

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