के लिए सर्वोत्तम अभ्यास एक grails ऐप में इंडेक्स पेज के लिए मॉडल को पॉप्युलेट करने का सही तरीका क्या है? डिफ़ॉल्ट रूप से कोई इंडेक्स कंट्रोलर नहीं है, क्या इस सूची की सूची पाने के लिए और मॉडल में कुछ अन्य तंत्र है?grails इंडेक्स पेज
उत्तर
मैं दावा नहीं करूंगा कि यह सही तरीका है, लेकिन चीजों को शुरू करने का यह एक तरीका है। नियंत्रक को डिफ़ॉल्ट होने में बहुत कुछ नहीं लगता है। UrlMappings.groovy करने के लिए एक मैपिंग जोड़ें:
class QuoteController {
def index = {
...
}
}
क्या आप लोड करना चाहते हैं पहले से ही एक अन्य कार्रवाई का हिस्सा है, तो बस अनुप्रेषित:
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"500"(view:'/error')
"/"
{
controller = "quote"
}
}
}
तो अब डिफ़ॉल्ट नियंत्रक को एक सूचकांक कार्रवाई जोड़ने
def index = {
redirect(action: random)
}
या वास्तव में कुछ पुन: उपयोग, के लिए जा रहा एक सेवा में तर्क डाल पाने के लिए:
class QuoteController {
def quoteService
def index = {
redirect(action: random)
}
def random = {
def randomQuote = quoteService.getRandomQuote()
[ quote : randomQuote ]
}
}
अच्छा उत्तर: यदि आपको इंडेक्स पेज के लिए मॉडल को पॉप्युलेट करने की आवश्यकता है, तो यह एक इंडेक्स नियंत्रक को सीधे index.gsp का उपयोग करने से बदलने का समय है।
बुरा जवाब: यदि आप एक फ़िल्टर बनाते हैं जिसका नियंत्रक '*' है, तो यह स्थिर पृष्ठों के लिए भी निष्पादित हो जाएगा।
मुझे काम करने के लिए उपरोक्त एड टी का उदाहरण नहीं मिला। शायद तब से Grails बदल गया है?
"/"(controller: 'home', action: 'index')
मेरे HomeController इस तरह दिखता है:
कुछ प्रयोग करने के बाद और कुछ नेट पर तलाशी, मैं इस के साथ UrlMappings.groovy
में समाप्त हो गया
class HomeController {
def index = {
def quotes = = latest(Quote.list(), 5)
["quotes": quotes, "totalQuotes": Quote.count()]
}
}
और में, मैं एक index.gsp
है फ़ाइल। इससे अनावश्यक विचारों में index.gsp
फ़ाइल बन जाती है, इसलिए मैंने इसे हटा दिया।
सिर्फ
"/index.gsp"(uri:"/")
जोड़ने UrlMappings.groovy करने के लिए grails 1.3.6 में मेरे लिए ठीक काम किया। यह पहले से वर्णित एक नया नियंत्रक और मैपिंग जोड़ने के समान प्रभाव है।
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
"/index.gsp"(uri:"/")
}
}
UrlMappings में उरी के साथ पुनर्निर्देशन करता है? मैंने कोशिश की (थोड़ा अलग उपयोग के लिए), और ऐसा नहीं हुआ। एक त्रुटि मिली है कि नियंत्रक शून्य था। मुझे नियंत्रक से रीडायरेक्ट करना पड़ा। – mcv
- 1. asp.net डेटापेजर, पेज इंडेक्स
- 2. एमवीसी इंडेक्स पेज और फ़िल्टर
- 3. Grails
- 4. grails अक्षम करें खोजने योग्य प्लगइन डिफ़ॉल्ट खोज पेज?
- 5. Grails: एंटरप्राइज़ लेवल Grails
- 6. ड्रॉपडाउनलिस्ट चयनित इंडेक्स पेज रीफ्रेश पर काम नहीं करता
- 7. साइट इंडेक्स
- 8. Grails खोजेबल प्लगइन
- 9. grails
- 10. grails
- 11. grails
- 12. Grails
- 13. Grails
- 14. Grails
- 15. grails
- 16. Grails
- 17. Grails
- 18. Grails
- 19. Grails
- 20. Grails
- 21. Grails
- 22. Grails
- 23. grails
- 24. Grails
- 25. Grails
- 26. Grails
- 27. Grails
- 28. Grails
- 29. grails
- 30. Grails
मुझे लगता है कि UrlMappings शायद पढ़ा जाना चाहिए था '"/"{नियंत्रक::" बोली "}'
नीचे मेरा पूरा UrlMappings.groovy है। यह तब तक मेरे लिए काम नहीं करता जब तक कि मैंने "=" को ":" में बदल दिया। –
'स्थिर डिफ़ॉल्ट क्रिया =" यादृच्छिक "' - इंडेक्स एक्शन से रीडायरेक्ट करने के बजाय आप वांछित एक्शन नाम के साथ नियंत्रक को डिफ़ॉल्ट एक्शन स्थिर फ़ील्ड जोड़ सकते हैं। – topr