У меня есть несколько действий контроллера, которые требуют нескольких различных методов HTTP, например, GET и POST. Вместо того, чтобы обрабатывать это в коде действия контроллера, я решил (неправильно), что он будет быстрее и менее сложным, если я помещу этот код в класс UrlMappings.groovy.
Вот что у меня есть:
class UrlMappings {
static mappings = {
...
"/$controller/(create|edit)/$id" {
action = [
GET: "editView",
POST: "edit"
]
}
}
}
Таким образом, в каждом контроллере, если второй параметр URL соответствует «edit», пользователь будет перенаправлен на одно из двух действий в зависимости от метода HTTP запроса.
Все работает нормально, пока код не достигнет моего действия editView
или edit
, где этот код:
params.id
оценивается как edit
, а не 1
, как ожидается из этого примера запроса: /location/edit/1
.
Это ошибка в Grails?