2012-01-19 4 views
1

Я вроде как новый для grails, и я пытаюсь просто сопоставить основной URL-запрос с представлением.Grails view URL Mapping

Итак, скажем, у меня есть представление, /x/index.gsp, и я хочу, чтобы пользователь мог перейти к нему. Там также будет /y/index.gsp, /z/index.gsp и т.д.

Я определил его следующим образом:

"/$customer/index"   { view = {params.customer+"/index"} } 

Это, кажется, бросить исключение, хотя. У меня также есть:

"/$customer/$controller/$action?/$id?" { } 

, который делает работу, и я не хочу, чтобы создать контроллер, который не делает ничего, но справиться с указательным вызов и показать его.

Уверен, что мне не хватает чего-то простого, но я не знаю, что это такое.

ответ

0

Причина, по которой первое сопоставление выходит из строя, заключается в том, что он не может определить, к какому контроллеру нужно направлять запрос.

Чтобы исправить это, вам нужно определить, к какому контроллеру вы хотите подключить верхнее сопоставление. Это, как я это сделал в недавнем проекте шахты:

"/uploaders/$id" {           
    controller: "uploader"         
} 

To map to just a view:

"/$customer/index"(view: "/${params.customer}/index") 
+0

Но я не хочу, чтобы определить контроллер. Почему я должен определять контроллер, который ничего не делает, кроме отправки? Кроме того, я не буду знать, что первая часть/(в вашем случае,/uploaders), поскольку она будет зависеть от того, кто зарегистрировался как – user965697

+0

. Я обновил свой ответ, чтобы отразить то, что вы на самом деле после. – cdeszaq

+0

Выдает ошибку: нет такого свойства: клиент для класса: java.lang.String – user965697