2012-12-22 14 views
5

के साथ एक ही URL का उपयोग करने का कोई भी रास्ता नहीं मैं निम्नलिखित है। फिर मैंने इसे जोड़ा:Grails 2.2.0 URLMappings: मैं वापस उपयोगकर्ताओं की एक सूची प्राप्त</p> <pre><code>"/api/users"(controller: "user") { action = [GET:"list"] } </code></pre> <p><code>http://localhost:8080/platform/users</code> के लिए एक कॉल करने से: विभिन्न क्रिया

"/api/users"(controller: "user") { 
    action = [POST:"save"] 
} 

और अब मुझे 404 मिलते हैं और यह उपयोगकर्ता नियंत्रक में कोई विधि नहीं मार रहा है। मैं क्रिया को क्रियान्वित करने के क्रिया के साथ एक ही यूआरएल का उपयोग करने में सक्षम होना चाहता हूं। क्या मैं यह गलत कर रहा हूं या क्या Grails इसका समर्थन नहीं करता है?

उत्तर

11
Grails डॉक्स से

: URL Mappings

static mappings = { 
    "/product/$id"(controller:"product") { 
     action = [GET:"show", PUT:"update", DELETE:"delete", POST:"save"] 
    } 
} 

अपने मामले के लिए:

"/api/users"(controller: "user") { 
    action = [GET:"list",POST:"save"] 
} 
+0

मुझे लगता है एक बेवकूफ की तरह। मैं जानता था कि। Must..get..sleep। धन्यवाद जेम्स। – Gregg

+0

विधियों के अलग-अलग नियंत्रकों में क्या हैं? या उदाहरण के लिए/उपयोगकर्ता एक कार्रवाई में जाते हैं और/उपयोगकर्ता/1111 दूसरे पर जाते हैं? – Jackie

+0

@ जेकी शायद आपके पास खराब योजनाबद्ध ऐप संरचना है। यदि यह अधिक परिष्कृत है तो रीडायरेक्ट के बारे में भी याद रखें। –

2

अपने userController की जांच करके पता है allowedMethods इस तरह उसके अनुसार परिभाषित:

class UserController { 

    static allowedMethods = [save: "POST", list: "GET"] 

    def list() { 
    ..... 
    } 

    def save() { 
    ..... 
    } 
}