2016-07-13 3 views
0

grails 2.3.8 здесь. Когда i g: ссылка на определенные действия контроллера, я хочу поместить пространство имен в URL-адрес перед именем контроллера.введите пространство имен в url

Например: вызов «приложение/яблоко/поесть» -> «приложение/администратор/яблоко/поесть»

Поскольку существует много динамических и статических scaffolded контроллеров, участвующих, я думал, что я могу сделать это с некоторыми Выражение UrlMappings, но я не знаю, как это сделать.

Я пытался что-то вроде этого, не без успеха:

static mappings = { 
    "/apple/$action?/$id?" (redirect:"/admin/apple/$action?/$id?") 
} 

с использованием пространства имен = "Admin" в не работает AppleController Aswell

спасибо за советы

ответ

0

Для примера

call "app/apple/eat" -> "app/admin/apple/eat" 

вы можете сделать это через grails-app/conf/UrlMappings.groovy w Ith следующей конфигурации (которая работает, чем для всего приложения):

class UrlMappings { 

    static mappings = { 
     "/admin/$controller/$action?/$id?(.$format)?"{ 
      constraints { 
       // apply constraints here 
      } 
     } 

     "/"(view:"/index") 
     "500"(view:'/error') 
    } 
} 

с этой конфигурацией, контроллеры достижимы через:

http://localhost:8080/apple/admin/apple/eat/1 

etc. 

Или!

Если бы только яблоко под приставкой администратора, чем вы могли бы сделать следующее в Grails-приложение/CONF/UrlMappings.groovy:

class UrlMappings { 

    static mappings = { 
     "/admin/apple/$action?/$id?"(controller : "apple") 
     "/$controller/$action?/$id?(.$format)?"{ 
      constraints { 
       // apply constraints here 
      } 
     } 

     "/"(view:"/index") 
     "500"(view:'/error') 
    } 
} 

Или!

Если у вас есть редирект, вы могли бы сгруппировать их вместе:

static mappings = { 
    group("/admin") { 
     "/apple/$action?/$id?(.${format})?"(controller: 'apple') 
     "/peach/$action?/$id?(.${format})?"(controller: 'peach') 
    } 
    ... 
+0

ооо спасибо - 2-ой «Или!» работал на меня :) – pebbles

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