2012-04-19 16 views
6

प्रश्न -Grails - यूआरएल मानचित्रण/डिफ़ॉल्ट कार्रवाई और प्रवाह

मैंने देखा है कि कुछ अनुप्रयोगों के साथ मैं परीक्षण/एक कार्रवाई से नियंत्रक सबमिट करते हैं, लेकिन जब उस पृष्ठ प्रदान की गई है, यह देखकर की बजाय किसी दूसरे को देखने के लिए आने वाली कॉल :

$ नियंत्रक/$ पेज

मैं देख रहा हूँ:

$ नियंत्रक/सूचकांक

इस URL मानचित्रण विन्यास के साथ एक मुद्दा है ? डिफ़ॉल्ट कार्रवाई? बस उत्सुक है, क्योंकि यह वास्तविक क्रिया के बजाय डिफ़ॉल्ट रूप से यूआरआई मैपिंग प्रतीत होता है।

दृश्य कोड:

<table> 
.. 
<g:actionSubmit class="stats" action="stats" value="View Stats"/> 
.. 
</table 

नियंत्रक:

def stats() { 

    def teamId = Team.get(params.id) 
    def allPlayers = Player.withCriteria { 
      eq('team', teamId) 
      and { 
       eq('isActive', true) 
      } 
    } 
    [allPlayers:allPlayers, teamId:params.id] 
} 

UrlMapping:

class UrlMappings { 

static mappings = { 
    "/$controller/$action?/$id?"{ 
     constraints { 
      // apply constraints here 
    } 
} 
} 

संपादित

मैं वास्तविक ly यह पता लगाया कि यह क्या है। जो मुझे और भी उलझन में डाल देता है।

grails actionSubmit के पास एक क्रिया है। यही कारण है कि प्रपत्र सिर्फ एक सामान्य रूप था, कॉल के बिना:

<g:form> 
<g:actionSubmit class="stats" action="stats" value="View Stats"/> 
<g:actionSubmit class="schedule" action="schedule" value="View Schedule"/> 
<g:form> 

तो डिफ़ॉल्ट रूप से, प्रपत्र $ नियंत्रक/सूचकांक करने के लिए कार्रवाई पुनर्निर्देश। यदि आप g: form टैग में कोई एक्शन कॉल जोड़ते हैं, तो वे दो बटन सही पृष्ठ पर निर्देशित होंगे, लेकिन यूआरआई अब $ नियंत्रक/$ g: form_action होगा।

मुझे लगता है कि मुझे कार्रवाई का बिंदु नहीं मिलता है अगर g: फ़ॉर्म को एक रैपर के रूप में आवश्यक है।

+0

http://jira.grails.org/browse/GRAILS-3086 जवाब के लिए – user82302124

उत्तर

4

हां, index सभी नियंत्रकों के लिए डिफ़ॉल्ट कार्रवाई है। तो यदि आप एक निर्दिष्ट नहीं करते हैं, तो वह पृष्ठ है जिसे आप नियंत्रक के लिए जमीन पर ले जाएंगे।

इस पर उनके website पर और विस्तार से चर्चा की गई है। अर्थात्, नियम हैं:

  • तो केवल एक ही कार्रवाई मौजूद है डिफ़ॉल्ट कि कार्रवाई के लिए एक नियंत्रक नक्शे का यूआरआई।
  • आप एक सूचकांक कार्रवाई जो कार्रवाई कि जब कोई कार्रवाई नहीं की URI/पुस्तक में निर्दिष्ट किया जाता
  • वैकल्पिक रूप से आप यह स्पष्ट रूप से सेट कर सकते हैं defaultAction संपत्ति के साथ अनुरोधों को प्रबंधित है निर्धारित करते हैं:

    स्थिर defaultAction = " सूची "

+0

धन्यवाद। प्रश्न हालांकि - एक क्रिया का उपयोग कर एक दृश्य से एक कॉल नियंत्रक में एक विधि में जाता है जिसमें एक कोरसपॉन्डिंग व्यू (एक ही चीज़ नाम दिया जाता है)।यूआरआई $ नियंत्रक/विधि के बजाय $ नियंत्रक/सूचकांक क्यों जाता है? – user82302124

+0

एचएम, सुनिश्चित नहीं है। क्या आप अपने एक्शन सबमिट कॉल से संबंधित कोई प्रासंगिक कोड पोस्ट कर सकते हैं? – Igor

+0

जोड़ा गया स्निपेट। आंकड़े पृष्ठ सही ढंग से प्रस्तुत करता है। बस यूआरआई नहीं। – user82302124

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