2012-02-13 4 views
1

Это должен быть простой конфигурации в URLMappings.groovy, но я продолжаю получать 404.Grails: отображение URL изменения имени контроллера

В принципе, я хочу, чтобы изменить имя контроллера. Например, у нас есть имя контроллера Content_pdfs_data_etcController.groovy, ужасно как URL, я попытался

static mappings = { 
    "/mdata/$action?"(controller: "content_pdfs_data_etc", action: 'index') 

    "/$controller/$action?/$id?"{ 
     constraints { 
      // apply constraints here 
     } 
    } 
    "/"(view:"/index") 
    "/"(controller:"home") 
    "500"(view:'/error') 
} 

Все действия в контроллере должны попадаю, а также (пример):

/mdata/шоу -> content_pdfs_data_etc/показать

/mdata/обновление -> content_pdsf_data_etc/обновление

спасибо.

+0

BTW что причина держать имя контроллера в качестве Content_pdfs_data_etcController –

+0

Это был еще один разработчик, который назвал контроллер, клиент вернулся и попросил изменил URL. Я знаю, что мог бы просто переименовать каталог controller/view. – ibaralf

+0

Да, было бы лучше переименовать контроллер, если у вас есть контроль над кодом. –

ответ

3

Спасибо за ответ Эндрю. Я на самом деле понял, что замена порядка сопоставления с по умолчанию исправила проблему. Я закончил с:

"/$controller/$action?/$id?"{ 
    constraints { 
    // apply constraints here 
    } 
} 
"/mdata/$action?/$id?" (controller: "content_pdfs_data_etc") 
3

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

"/mdata/$action?"(controller: "content_pdfs_data_etc") 
Смежные вопросы