2010-07-16 3 views
14

아래 예에서 fieldError이 어떻게 인쇄되는지 알 수있는 사람이 있습니까? 인쇄 기본 오류 코드 오류와 각 항목에 대한 Grails 필드 오류 표시

, 내가이가하는 모든 순간에

을 파일 messages.properties에서 정의한 사용자 지정 오류 메시지를 인쇄하고자하는 것입니다

item.errors?.allErrors?.each{ 
    println it.toString() 
} 

필드에 대한 오류 코드를 조회 할 수있는 다른 예제를 보았습니다.

it.getFieldError('title').code 

그러나 기본 메시지를 새로운 오류 메시지로 변환하고 인쇄하고 싶습니다.

답변

20

messageSource bean에 액세스해야합니다.

def messageSource 

(컨트롤러 또는 서비스) 그럼 당신은 (컨트롤러 또는 서비스)

def locale = Locale.getDefault() 
for (fieldErrors in bean.errors) { 
    for (error in fieldErrors.allErrors) { 
     String message = messageSource.getMessage(error, locale) 
    } 
} 
+1

넣어 데프 MessageSource를 함께이 일을 감사 메시지를 액세스 할 수 있습니다. item.errors? allErrors? .each { println messageSource.getMessage (it, null) }}; 나는 또한이 아닌 것 같아,이 더 나은 http://johnrellis.blogspot.com/2010/02/retrieve-grails-domain-errors-from.html – MTH

+1

버트를 설명하는 좋은 링크를 발견 개별 오류 객체가 특정 메시지를 리턴하는'message' 필드를 가지지 않고, 빈을 임포트하고 정적 메소드를 호출 할 필요가없는 이유가 있습니까? –