2010-07-13 3 views
3

ОК, поэтому я спросил и получил ответ о том, как создать единый экземпляр контроллера, нечувствительный к регистру по отношению к URL-адресам. Я могу сделатьеще один вопрос, связанный с urlmapping grails

"/mycontroller/$action?/$id?"(controller: "myController") 

поэтому, когда приложение вне пытается ссылаться на ссылку в нашем приложении, их строчных URL (:(Вздох) будет работать.

мне нужно расширить это включать действия, а также. Так вопрос в том, следуя вышеизложенным подходом, мне нужно поставить отображение URL-адреса в течение каждого действия?

/mycontroller/methodone/(controller: "myController", action: methodOne) 
/mycontroller/methodtwo/(controller: "myController", action: methodTwo) 

Что-то вроде выше?

ответ

0

Вы можете использовать замыкание для расчета действия (или другие параметры) программно:

"/mycontroller/$a?/$id?" { 
    controller = 'myController' 
    action = { params.a?.toLowerCase() } 
} 
+0

Wouldnt это преобразовать действие, привлекаемого к нижнему регистру? На контроллере действие - верблюд. Таким образом, /mycontroller/MyAction потребности быть преобразована в /myController/MyAction работать – hvgotcodes

+0

Вы правы, я читаю ваш вопрос неправильно - я думал, что ты хотел, чтобы перейти от camel- к низколежащим дело. Чтобы перейти в другую сторону, вам нужно получить список действий для контроллера (см. Http://stackoverflow.com/questions/2956294/reading-out-all-actions-in-a-grails-controller), а затем постройте карту нижнего регистра на имена верблюдов. Вместо того, чтобы поместить весь этот код в конфигурацию url-сопоставлений, вы, вероятно, захотите сопоставить «/ mycontroller/$ a?/$ Id?». к новому действию в MyController и выполните это действие, запустив код с нижним верблюдом и перенаправляя запрос на действие с верблюжьим корпусом. –

Смежные вопросы