Jaki jest właściwy sposób wypełnienia modelu strony indeksu w grze Grails? Domyślnie nie ma IndexController, czy istnieje jakiś inny mechanizm do uzyskania listy tego i tego w modelu?Najlepsze praktyki dla strony z indeksami grails
Odpowiedz
Nie będę twierdził, że to jest właściwa droga, ale jest to jeden ze sposobów na rozpoczęcie rzeczy. Nie ma zbyt wiele, aby kontroler był domyślny. Dodaj mapowanie do UrlMappings.groovy:
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"500"(view:'/error')
"/"
{
controller = "quote"
}
}
}
Następnie dodać akcję indeksu do teraz domyślnego kontrolera:
class QuoteController {
def index = {
...
}
}
Jeśli to, co chcesz, aby załadować jest już częścią innej akcji wystarczy przekierować:
def index = {
redirect(action: random)
}
Lub naprawdę uzyskać pewne ponowne zamiar umieścić logikę w serwisie:
class QuoteController {
def quoteService
def index = {
redirect(action: random)
}
def random = {
def randomQuote = quoteService.getRandomQuote()
[ quote : randomQuote ]
}
}
Dobra odpowiedź: Jeśli chcesz wypełnić model strony indeksu, czas przejść od użycia prostego indeksu.gsp do kontrolera indeksu.
Zła odpowiedź: Jeśli utworzysz filtr, którego kontrolerem jest "*", zostanie wykonany nawet na stronach statycznych.
Nie mogłem pobrać powyższego przykładu Ed T powyżej. Być może Grails zmienił się od tego czasu?
Po kilku eksperymentach, a niektóre grzebać w internecie, skończyło się to w UrlMappings.groovy
:
"/"(controller: 'home', action: 'index')
Moja HomeController wygląda następująco:
class HomeController {
def index = {
def quotes = = latest(Quote.list(), 5)
["quotes": quotes, "totalQuotes": Quote.count()]
}
}
I , mam index.gsp
plik. To sprawia, że plik index.gsp
w widokach jest niepotrzebny, więc usunąłem go.
w Grails 1.3.6 dla prostu dodając
"/index.gsp"(uri:"/")
do UrlMappings.groovy pracował dobrze dla mnie. Ma taki sam efekt jak dodanie nowego kontrolera i odwzorowań, jak opisano wcześniej.
Poniżej jest mój pełny UrlMappings.groovy:
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
"/index.gsp"(uri:"/")
}
}
Czy przekierowanie z uri działa w UrlMappings? Próbowałem (dla nieco innego zastosowania), a tak się nie stało. Wystąpił błąd, że kontroler ma wartość zerową. Musiałem uciekać się do przekierowania z kontrolera. – mcv
- 1. Najlepsze praktyki dla wstrzykiwania zależności
- 2. Najlepsze praktyki korzystania z git w wdrożeniach strony internetowej
- 3. Najlepsze praktyki dla MATLAB dla indeksu pętli
- 4. Najlepsze praktyki wtrysku zależnego
- 5. DTO: najlepsze praktyki
- 6. Najlepsze praktyki CoreData
- 7. Android strings.xml Najlepsze praktyki?
- 8. Najlepsze praktyki testowania integracji
- 9. Najlepsze praktyki anulowania zadań:
- 10. IBOutlet najlepsze praktyki
- 11. Najlepsze praktyki dotyczące debugowania
- 12. CXF Wsdl2Java Najlepsze praktyki
- 13. Najlepsze praktyki ASP.NET Security
- 14. Gulpfile.js oglądać najlepsze praktyki
- 15. Przepływ pracy/najlepsze praktyki dla XLIFF
- 16. Najlepsze praktyki dla prywatnych kluczy prywatnych
- 17. Najlepsze praktyki dla sprawdzanie flagą enum
- 18. Chciałbym poznać "najlepsze praktyki" dla Erlanga?
- 19. Doctrine 2 - najlepsze praktyki dla i18n?
- 20. Najlepsze praktyki ActionListener
- 21. Konto dla programistów Facebooka Najlepsze praktyki
- 22. Najlepsze praktyki dla komunikacji asynchronicznej pomiędzy służbami
- 23. Najlepsze praktyki scalania SVN
- 24. Shared NSDateFormatter - najlepsze praktyki?
- 25. Najlepsze praktyki asynchronicznego Webrequestu
- 26. Najlepsze praktyki LDAP
- 27. CSS Outline najlepsze praktyki
- 28. Najlepsze praktyki modelowania LDAP
- 29. Transakcje NHibernate Najlepsze praktyki
- 30. Swagger Najlepsze praktyki
myślę, że UrlMappings powinno zapewne czytać ' "/"{Kontroler: "kosztorys"}'. Nie zadziałało to dla mnie, dopóki nie zmieniłem "=" na ":". –
'statyczna defaultAction =" losowa "' - zamiast przekierowania z akcji indeksu do kontrolera można dodać statyczne pole defaultAction z żądaną nazwą akcji jako wartością. – topr