2012-04-04 11 views
13

मैं स्कैला का उपयोग कर प्ले (2.0) में नियंत्रक कार्रवाई के भीतर रीडायरेक्ट करने का तरीका जानने का प्रयास कर रहा हूं।प्ले फ्रेमवर्क - पैराम्स के साथ रीडायरेक्ट

रीडायरेक्ट ठीक

Redirect(routes.Application.index) 

काम करता है का उपयोग कर।

डॉक्स, एपीआई, या Google से मुझे क्या पता नहीं लगा सकता है कि कॉल में पैरामीटर कैसे जोड़ना है।

रीडायरेक्ट कार्रवाई: "अनुक्रमणिका", पैरामीटर:

मैं Grails जहां यह आसानी से किया जा सकता है इस प्रकार से आ रहा हूँ [ "कुंजी": "मूल्य"] ।

मुझे मिला एकमात्र तरीका एक स्ट्रिंग यूआरएल और एक क्वेरी स्ट्रिंग का उपयोग कर रीडायरेक्ट को कॉल करना है, जो अजीब लगता है।

असल में मैं किसी भी तरह रीडायरेक्ट (कॉल) का उपयोग करना चाहता हूं, लेकिन मैं रिवर्स रूटिंग का उपयोग करके कॉल ऑब्जेक्ट को कैसे बनाना नहीं चाहता हूं।

क्या मुझे कुछ याद आ रहा है/Play/Scala में अवधारणा नहीं मिल रही है?

अग्रिम में धन्यवाद!

उत्तर

15

Ellou '

एक मार्ग, बस एक समारोह है, ताकि आप हमेशा की तरह तर्क पारित कर सकते हैं:

// Redirect to /hello/Bob 
def helloBob = Action { 
    Redirect(routes.Application.hello("Bob"))  
} 

यह टुकड़ा (नीचे) http://www.playframework.org/documentation/2.0/ScalaRouting से आता है

+0

धन्यवाद! असल में, मैंने इसे पहले स्थान पर करने की कोशिश की, लेकिन संकलक ने शिकायत की, कि मैंने बहुत से तर्क दर्ज किए हैं। समस्या यह थी: कार्रवाई में एक लंबा समय लगता है, लेकिन रूटिंग में मैंने परिभाषित किया है कि कार्रवाई के लिए डिफ़ॉल्ट मान होना चाहिए। मुझे इसे हटाना पड़ा। तो अब मुझे इंडेक्स (कोई नहीं) या इंडेक्स (कुछ (foo)) कॉल करने की आवश्यकता है। Grails से आ रहा है यह वास्तव में थकाऊ लगता है। – pchronz

+3

+1 यह वही है जो सुरक्षित-सुरक्षित यूआरएल हैं। मेरी इच्छा है कि वे उन्हें और अधिक बेच देंगे। –

+1

+1 के साथ-साथ टाइप-सेफ, @ डैनबर्टन, संपादन के लिए thanx – biesior

0

तुम भी बच सकते हैं बस इसके लिए अपने नियंत्रक में एक और समारोह बनाते हैं। आपके रूट कॉन्फ़िगरेशन में, आप बस इस तरह कुछ जोड़ सकते हैं:

GET /google @controllers.Default.redirect(to = "http://google.com") 
+0

@zenith: उम्मीद है कि यह –

+0

Muuuuch बेहतर मदद करता है! – emlai

+0

यह काम नहीं करता प्रतीत होता है। मुझे 'ऐसी कोई फ़ाइल या निर्देशिका नहीं' मिलती है –

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