Grails에서 도메인 개체와 상호 작용할 때 발생하는 예외에서 오류 코드가 무엇인지 확인하려고합니다.Grails 오류 코드
일부 필드 유효성 검사가있는 데이터베이스가 있는데 유효성 검사 중 하나는 특정 열이 고유해야한다는 것입니다. 문서에 따르면 오류 코드는 className.propertyName.unique
(http://grails.org/doc/latest/ref/Constraints/unique.html)이됩니다. 컨트롤러를 try catch 블록처럼 랩핑 할 때. 모든 종류의 유효성 검사 예외를 잡을 수 있습니다.
catch (grails.validation.ValidationException e) {
exception handling code here
}
어떻게 오류 코드에 액세스합니까? If the Error Code = className1.propertyName2.unique
과 같은 것을하고 싶습니다. 그리고 나서 propertyName2 is not unique
으로 응답하십시오.
저장 작업을 수행 할 때 "failOnError : true"매개 변수로 설정했습니다.
감사합니다.
은 className1.propertyName2.unique = propertyName2이 unique' 아닌'추가 'messages.properties' 파일에 Grails는 잡을 필요가 없습니다. – user1690588
나는 세부 사항을 자세히 설명 할 시간이 없지만 지금 당장은 훌륭한 대답을 주겠다. 그러나 짧고 더러운 대답은'도메인 객체 '를 저장하려고 할 때 실패 할 것이라는 것이다. 너무 조용히해라.하지만 오류를 줄 수있는'errors'라고하는 것이 있어야한다. 그것은 다음과 같이합니다 : 데프 domainObject = 새로운 DomainObject (PARAMS) 경우 { domainObject.each { 인쇄 (IT) } } 다시는 신속하고 더러운 아니다 (domainObject.save()!) 완료하지만 필요한 것을 얻을 수 있어야합니다. –
_e.getErrors(). getFieldError() _은 20 개의 오류 배열이며 배열의 항목 중 하나는 설명서의 오류 코드입니다. 해당 오류 코드가있을 경우 매번 배열을 확인해야합니까? --- @ user1690588 내 메시지에 속성이 있습니다. 속성. 배열을 검사하여 출력해도 ** lassName1.propertyName2.unique **에서 ** propertyName2는 고유하지 않습니다 ** --- TedDelezene, 나는 그것을 설정해야합니다. 작동하지 않았다. 예외로 처리하는 방법이 있는지 알고 있습니까? –