2015-03-04 4 views
6

मैं एक Grails नियंत्रक में एक ग्रूवी विशेषता का उपयोग करने के लिए करना चाहते हैं:के अनुसार निम्नलिखित एक Grails नियंत्रक में एक ग्रूवी विशेषता का प्रयोग करें

trait ColumnSelectionController { 
    def selectColumns() { 
     //Do something here 
    } 
} 

class MyController implements ColumnSelectionController { 
    def index() { 
     //Calculate list model 
    } 
} 

जब मैं तथापि Grails में इस चलाने के लिए, "selectColumns" कार्रवाई दिखाई नहीं दे रहा है और मुझे Grails से 404 प्रतिक्रिया मिलती है। मुझे संदेह है कि ऐसा कुछ है जो मुझे इस विशेषता के साथ करने की ज़रूरत है कि इसके अंदर परिभाषित विधियों को कार्यान्वयन वर्ग में कार्रवाइयों के रूप में पहचाना जाता है। किसी को पता है कि यह क्या हो सकता है?

संपादित करें 1:

अधिक जानकारी: विशेषता, grails एप्लिकेशन के अंतर्गत/नियंत्रकों में नहीं हैं src/ग्रूवी में परिभाषित किया गया है इसलिए यह एक मूर्ति के रूप में परिभाषित नहीं है।

संपादित करें 2:

इसके अलावा, अगर मैं एक वर्ग के लिए विशेषता बदलने के लिए, यह @Artefact टिप्पणी के साथ चिह्नित करने और इस वर्ग का विस्तार करने के MyController बदलने के लिए, सब कुछ उम्मीद के रूप में काम करता है। विशेषता पर @Atetefact एनोटेशन का उपयोग करने का प्रयास कुछ भी नहीं करता (कोई बड़ा आश्चर्य नहीं)।

+0

आप Grails का किस संस्करण का उपयोग कर रहे हैं? इसके अलावा, आप ग्रोवी का किस संस्करण का उपयोग कर रहे हैं? –

+0

मैं Grails 2.4.3 और ग्रोवी 2.3.3 का उपयोग कर रहा हूँ। लक्षण ऐप के अन्य हिस्सों में ठीक काम करते हैं और सभी विशेषता विधियां विधियों के रूप में दिखाई देती हैं, वे केवल एक्शन एंडपॉइंट्स के लिए वायर्ड नहीं होते हैं। –

+0

क्या आपने इस समस्या को हल किया? हमारे पास एक ही समस्या है – droggo

उत्तर

6

बस विशेषता में परिभाषित पद्धति पर @Action एनोटेशन परिभाषित करते हैं, यह इस विधि नियंत्रक के लिए लड़ाई के रूप में काम (जब लक्षण कार्यान्वित हो)

import grails.web.Action 

trait ColumnSelectionController { 

    @Action 
    def selectColumns() { 
    //Do something here 
    } 
} 

आशा इस मदद करता है कर देगा।

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