Как отобразить действие в Grails 3 на "/"? - PullRequest
0 голосов
/ 04 апреля 2020

Я использую Grails 3.3.10 и пытаюсь сопоставить "/" с действием контроллера, куда пользователь перенаправляется после успешного входа в систему.

В UrlMappings у меня есть:

class UrlMappings {

   static mappings = {

      "/"(controller:'app')
   ...
...

Когда пользователь входит в систему, приложение перенаправляется на root http://localhost: 8090 / , но показывает сгенерированное представление из Grails:

Welcome to Grails

Congratulations, you have successfully started your first Grails
application! At the moment this is the default page, feel free to
modify it to either redirect to a controller or display whatever
content you may choose. Below is a list of controllers that are
currently deployed in this application, click on each to execute
its default action:

Available Controllers:

....

I удалил default index.gsp и макет main.gsp, но это представление с контроллерами все еще появляется, и я не могу заставить мое действие быть выполненным.

Если я удаляю UrlMapping "/" (контроллер : 'app'), действие выполняется в порядке, и представление является правильным, но URL-адрес http://localhost: 8090 / app / index

Можно ли отобразить представление из приложения / индекса является URL, сопоставленным с "/"?

1 Ответ

1 голос
/ 04 апреля 2020

Можно ли отобразить представление из приложения / индекса, если URL-адрес сопоставлен с "/"?

Да, это так. См проект на https://github.com/jeffbrown/pablopazosurlmapping.

https://github.com/jeffbrown/pablopazosurlmapping/blob/452980ca99bbd5ccc217047534798001a8d7d9cb/grails-app/controllers/pablopazosurlmapping/UrlMappings.groovy

package pablopazosurlmapping

class UrlMappings {

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

        "/"(controller:'app')
        "500"(view:'/error')
        "404"(view:'/notFound')
    }
}

https://github.com/jeffbrown/pablopazosurlmapping/blob/452980ca99bbd5ccc217047534798001a8d7d9cb/grails-app/controllers/pablopazosurlmapping/AppController.groovy

package pablopazosurlmapping

class AppController {
    def index() {
        [name: 'Pablo']
    }
}

https://github.com/jeffbrown/pablopazosurlmapping/blob/452980ca99bbd5ccc217047534798001a8d7d9cb/grails-app/views/app/index.gsp

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
    <title>Demo</title>
</head>

<body>
<h2>${name} Was Here!</h2>
</body>
</html>

Надеюсь, это поможет.

...