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: -)