2010-10-10 4 views
13

यदि आप नियंत्रक के सार्वजनिक-विधि से कॉल करते हैं तो आप हमेशा Redirect-After-Post-Pattern का पालन करते हैं। यह ज्यादातर मामलों में एक अच्छा व्यवहार है, लेकिन कभी-कभी यह बुरा हो सकता है। इसलिए मैंने यह पता लगाने की कोशिश की कि यह 1.1 में कैसे काम करता है !: मूल कुछ बाइट-कोड-एन्हांसमेंट है, जो play.classloading.enhancers.ControllersEnhancer में किया जाता है। वहाँ आप पा सकते हैं कि वहाँ अभी भी डिफ़ॉल्ट व्यवहार के कुछ अपवाद मौजूद है:मैं प्ले-नियंत्रक में रीडायरेक्ट व्यवहार को कैसे प्रभावित कर सकता हूं?

  1. अपने विधि पैकेज play.mvc, उदाहरण के लिए इससे पहले कि-टिप्पणी से एक टिप्पणी के द्वारा एनोटेट जाता है।
  2. आप ByPass -nnotation के साथ अपनी कार्रवाई को एनोटेट करते हैं, यह एनोटेशन एक आंतरिक श्रेणी होना चाहिए ताकि नाम समाप्त हो सके $ByPass के साथ।

यदि आप हमेशा रीडायरेक्ट को दबाना चाहते हैं तो दोनों समाधान ठीक हैं। लेकिन क्या होगा यदि आप केवल इसे विशेष स्थिति में करना चाहते हैं? फिर आप ControllerInstrumentation.initActionCall() पर कॉल कर सकते हैं।

मुझे इसके बारे में कोई विवरण नहीं मिला है, मैं बस कोड का विश्लेषण करता हूं। तो क्या मेरा निष्कर्ष सही है या कोई कमी है?

+0

initActionCall वास्तव में उपयोगी है यदि आपको किसी अन्य दृश्य को कॉल करने की आवश्यकता है लेकिन पुनर्निर्देशित नहीं करना चाहते हैं: http://groups.google.com/group/play-framework/browse_thread/thread/59c2aebefb94aac5/62651072b74275e1?lnk=gst&q=redirect # 3f5ccb63d4652565 – Stefano

उत्तर

2

जो मुझे पता है कि आपको धारणाएं सही हैं।

उसने कहा, जो मैं समझता हूं कि आप एक विधि चाहते हैं जो निष्पादन के बाद समाप्त हो और कुछ भी न करे? अंत में किसी भी "रेंडर" कॉल को न जोड़ें (या किसी अन्य विधि को कॉल करें) और उसे काम करना चाहिए। मैं इसे क्रॉन नौकरियों के लिए उपयोग करता हूं।

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

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