2011-11-29 3 views
1

내 컨트롤러이 (테스트) 코드가 있습니다Grails를 - hasErrors()

println domainInstance.hasErrors() 
render (view: "edit", model: [domainInstance: domainInstance]) 

println 인쇄 콘솔에 false하지만 GSP는 <g:hasErrors>를 사용하여 오류를 렌더링합니다.

왜 이런 일이 일어날까요?

+0

을 수정해야 성명서. 그래서'hasErrors()'는'domainInstance.validate()'다음에 호출되면'true'를 (예상대로) 리턴합니다. – zoran119

답변

4

GSP 코드를 보여 주면 도움이되지만, 을 호출하지 않았기 때문에 hasErrors()이 true를 리턴한다고 추측합니다.

hasErrors() 메서드는 유효성 검사를 수행하지 않지만 유효성 검사를 마지막으로 수행 한 시간에 오류가 감지되었는지 여부를보고합니다. 그래서 hasErrors()로 전화하고 <g:hasErrors>에 대한 호출이 수행되기 전에 얼마간의 시간이 걸릴 것으로 판단됩니다. 당신이

println domainInstance.validate() 

println domainInstance.hasErrors() 

에 대한 호출을 대체하는 경우

어쨌든, 그`render` 후 도메인 인스턴스가 어딘가에서 검증 가져옵니다/보인다 그것을

관련 문제