Как получить доступ к параметрам отображения URL-адресов в пользовательской проверке ограничения? - PullRequest
0 голосов
/ 07 октября 2018

В приложении Grails 2.2.3 у меня есть следующее отображение URL

import app.UserService

class UrlMappings {

    UserService userService

    static mappings = { ctx ->

        "/users/$id/records/$school/detail" {
            controller = 'user'
            action = 'recordsDetail'
            constraints {
                id matches: /\d+/
                school validator: { school, obj -> school in ctx.userService.getUserSchools(id) }
            }
        }
    }
}

Мне нужно реализовать пользовательскую проверку в параметре школы.Для этого мне нужно вызвать метод userService.getUserSchools (id).

Текущая попытка дать java.lang.NullPointerException с сообщением Cannot get property 'id' on null object Мне нужно получить доступ к параметру id в школьном пользовательском валидаторе.,Я пытался id или obj.id, но безуспешно.

Спасибо за любой совет

1 Ответ

0 голосов
/ 07 октября 2018

obj в этом случае RegexUrlMapping, который не позволяет получить доступ к параметру id, но вы можете использовать org.springframework.web.context.request.RequestContextHolder для доступа к любым параметрам запроса в закрытии валидатора следующим образом:

RequestContextHolder.requestAttributes.params.id

или просто:

RequestContextHolder.requestAttributes.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...