Подтвердить что ты не робот

Как изменить домашнюю страницу по умолчанию в приложении Grails?

Каков параметр конфигурации для изменения главной страницы по умолчанию в приложении Grails, который больше не будет appName/index.gsp? Конечно, вы можете настроить эту страницу как перенаправление, но должен быть лучший способ.

4b9b3361

Ответ 1

Добавьте это в UrlMappings.groovy

 "/" {
    controller = "yourController"
    action = "yourAction"
 }

Конфигурируя URLMappings таким образом, домашней страницей приложения будет yourWebApp/yourController/yourAction.

(вырезано/вставлено из Блог IntelliGrape)

Ответ 2

Изменить UrlMappings.groovy

Добавить, например, добавить это правило, чтобы обработать корень с помощью HomeController.

"/" (контроллер: 'дом')

Ответ 3

Вы можете попробовать следующее: в классе UrlMappings.groovy, который находится внутри папки конфигурации:

class UrlMappings {

    static mappings = {

        "/$controller/$action?/$id?"{
            constraints {
                // apply constraints here
            }
        }

        //"/"(view:"/index")
        "/" ( controller:'Item', action:'index' ) // Here i have changed the desired   action to show the desired page while running the application
        "500"(view:'/error')
    }
}

надеюсь, что это поможет,
Рубель

Ответ 4

Используйте параметр контроллера, вида и действия с помощью следующего синтаксиса:

class UrlMappings {
   static mappings = {
       "/" (controller:'dashboard', view: 'index', action: 'index')
       "500"(view:'/error')
   }
}

Ответ 5

Простой и аккуратный

  • Перейдите в Файл: grails-app/conf/UrlMappings.groovy.

  • Замените строку: "/" (view: "/index" ) с "/" (контроллер: 'home', действие: "/index" ).

Главная - ваш контроллер для запуска (как и в spring безопасности, вы можете использовать "login" ), а действие - это страница просмотра grails, связанная с вашим контроллером (In spring Security '/auth').

Добавить перенаправление страниц в соответствии с потребностями вашего приложения.

Ответ 6

Все ответы верны! Но представьте себе сценарий:

Я сопоставил путь "/" с контроллером: "Главная" и действие: "индекс", поэтому, когда я обращаюсь к "/app-name/", контроллер Home запускается, но если я набираю путь "/app- имя/домашний/индекс", он все равно будет выполнен! поэтому есть два пути для одного ресурса. он будет работать, пока кто-то не узнает путь "home/index" .

другое дело, если у меня есть форма без указанного атрибута действия, поэтому по умолчанию будет POST тому же контроллеру и действию! поэтому, если форма отображается на путь "/" и не указан атрибут действия, она будет отправлена ​​на тот же контроллер, но на этот раз путь будет "home/index" в вашей адресной строке, а не "/", потому что он передается контроллеру/действию не в URI.

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

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

Итак, теперь, когда вы получаете доступ к "/", это сработает. но "home/index" не будет. Но есть один недостаток, теперь вам нужно сопоставить все пути к контроллерам вручную, явно вписав в файл URLMapping. Думаю, это поможет!

Ответ 7

Если кто-то ищет ответ для gails 3.x, он переместил UrlMappings.groovy в grails-app/controllers/appname

Как показывают ответы ниже, просто введите строку, начинающуюся с "/".

В моем случае это:

"/"(controller:"dashboard", view:"/index")