Grails - скрытие /index Действие с использованием маршрутов
Каков правильный способ скрыть действие /index с помощью маршрута в приложении Grails?
Я хочу иметь возможность перенаправления на контроллер: "profile", action: "index", но URL-адрес выглядит как
http://foobar.com/profile
не
http://foobar.com/profile/index
Ответы
Ответ 1
UrlMappings.groovy
static mappings = {
"/profile"(controller:"profile", action: "index")
}
Или вы можете установить действие по умолчанию в контроллере
class BookController {
static defaultAction = "index"
}
Если вы хотите перенаправить на этот URL-адрес, то изнутри действия в контроллере.
redirect uri: '/profile' // This one for the UrlMappings solution
или
redirect controller: 'profile' // This one for the defaultAction solution.
Ответ 2
"/foo/" (controller:"foo", action:"index")
Это относится к UrlMapping.groovy.
UrlMapping.groovy работает в обоих направлениях, что означает, что ссылка g: link to controller foo и action также будет генерировать этот укороченный URL.
Вам нужно будет сделать это для каждого индекса контроллеров.
Я пробовал настройку:
"/$controller" {}
Но нет сигары, может быть, кто-то еще знает, как это работает.
Изменить:
Ха, я начал писать этот ответ перед вами, Ник, затем провел 10 минут, тестируя различные комбинации только $controller thingie: -)