정적 제약 조건에 액세스 할 때 NullPointerException을 받고 있습니다
문제
코드
${personRequest.constraints.requestStatus.inList}
내 GSP 파일에서 a NullPointerException
, 하지만 new PersonRequest().constraints..
공장. 왜요? 그렇지 않습니다 constraints
공전?
해결책
복사 여기 (Grails-User 메일 링리스트)
그러나 왜 정적 필드로의 액분이 작동하지 않습니까?
"제약 조건"정적 필드는 폐쇄 속성이기 때문입니다. 제약과 관련된 하위 장점이 없습니다.
Grails는 존재하지 않는 방법, 즉 사용하는 속성 이름에 "호출"을 모니터링하는 구속 조건 빌더를 사용 하여이 클로저를 평가합니다.
type( inList: [xxxxx])
... "inlist"==> 일부 값을 포함하는 맵 매개 변수가있는 "type"로 메소드 호출을 유발합니다.
이 정보에서 Grails는 모든 제약 조건의 목록을 작성합니다.
이용 가능하고 도메인 클래스의 향후 인스턴스에 바인딩합니다.따라서 사용자에게 액세스 할 때 정적으로 제한하면
폐쇄.우리는 초기화 된 폐쇄를 평가 한 후 런타임시 정적 구속 조건 속성의 값을 대체하는 것을 볼 수 있습니다. 그러나 이것은 약간 "너무 많은"마법 일 수 있습니다. 사람들은 어떻게 생각합니까?
참고로 0.4까지 (기억한다면) 제약 조건이 정적이 아니었고 0.4에서는 여전히 비 정적이 될 수 있기 때문에 지금은 이와 같습니다. 0.5에서만
비 정적 제약 조건을 예외/무시합니까?
제휴하지 않습니다 StackOverflow