Grails: сопоставление URL с расширением / форматом .gsp - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть запрос URL, например www.xyz.com/customer/list.gsp

Когда я пытаюсь сопоставить URL для удаления .gsp:

"/customer/list.gsp"(controller: "customer") {
        action = "list"
    }

приложение grails не распознает URL и выдает Ошибка 404 Я что-то здесь упускаю?

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Если вы хотите удалить .gsp из URL, тогда вы можете использовать сопоставление, как это ...

"/customer/list"(controller: "customer") {
        action = "list"
}

Вы также можете сделать это ...

"/customer/list"(controller: "customer", action: "list")

Если вам нужно 1 сопоставление для всех действий в контроллере, вы можете сделать это:

"/customer/$action"(controller: "customer")

Сгенерированное по умолчанию сопоставление включает в себя "/$controller/$action", что позволяет сопоставить любое действие в любом контроллере.

При этом отправка запроса на /customer/list будет работать.

0 голосов
/ 23 апреля 2020

Обновление: по-видимому, это нормально для сопоставления с GSP. Я все еще думаю, что информация ниже может быть полезна, поэтому я оставляю ответ, но, возможно, я неправильно понял ваш вопрос.

Исходный ответ:

Вы не должны отображать или запрашивать gsps вообще. Они используются для генерации представлений, но не доступны для просмотра без рендеринга.

Вместо этого go для URL, например www.xyz.com/customer/list, и для отображения, например

"/customer/list" (controller: "customer") {
    action = "list"
}

Или даже лучше, вам не нужно настраивать отображение для каждой конечной точки. Такое значение по умолчанию будет работать:

"/$controller/$action?/$id?" { }

Ваш CustomerController отобразит list.gsp в действии list.

...