В моем файле UrlMapping я сделал следующее правило, и теперь все мои контроллеры соответствуют сопоставлению ("/$username"
), а не первому ("/$controller/$action?/$id?"
).Grails UrlMapping route to fixed controller and action
Идея состояла в том, чтобы перечислить все публичные элементы пользователя, используя короткий URL-адрес. Он работает, но он ломает всех остальных контроллеров.
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/$username" {
controller = 'user'
action = 'publicItens'
}
"/"(controller:'usuario', action: 'index')
"500"(view:'/error')
}
Как правильно его сопоставить?
На самом деле, я бы хотел отобразить его без имени контроллера. – lfrodrigues
@lfrodrigues, так что вы хотите, когда '$ username' окажется таким же, как одно из имен контроллеров? Например, что, если у вас есть контроллер с именем 'search', но кто-то устанавливает свое имя пользователя для« поиска »? Как grails узнает, какое URL-адрес отображает? – GreenGiant
В этом случае грайлы выберут контроллер. Контроллер, который создает новых пользователей, должен быть изменен, чтобы избежать регистрации пользователя с именем контроллера. – lfrodrigues