2014-07-09 7 views
0

에 쇼 유효성 검사 오류 메시지 나 다음 도메인 클래스가 : 사용자에 대한Grails에 - GSP

class User { 

    String name 
    String contactName 
    String primaryEmail 
    String url 
    String phoneNumber 
    String address 

    static hasMany = [users: User] 

    static constraints = { 
     name blank: false 
     contactName blank: false 
     primaryEmail email: true 
     url blank: false 
     phoneNumber blank: false 
     address blank: false 
    } 
} 

그리고 컨트롤러 :

class UserController { 

    def create() { 
     User user = new User() 
     [user: user] 
    } 

    def save(User user) { 
     if (!user.save(flush: true)) { 
      render (view : 'create', model: [user: user]) 
     } 

     redirect action: 'create' 
    } 
} 

내가 유효성 검사가 실패하면 경우에 검증 오류를 표시하고자합니다. 내 create.gsp은 다음과 같습니다

<body> 
<g:form action="save" > 
    <g:renderErrors bean="${user}"/> 
    <g:textField name="user.name" id="message" value="${user.name}"/> 
    <g:textField name="user.contactName" id="contactName" value="${user.contactName}"/> 
    <g:textField name="user.primaryEmail" id="primaryEmail" value="${user.primaryEmail}"/> 
    <g:textField name="user.url" id="url" value="${user.url}"/> 
    <g:textField name="user.phoneNumber" id="phoneNumber" value="${user.phoneNumber}"/> 
    <g:textField name="user.address" id="address" value="${user.address}"/> 

    <g:submitButton name="submit" value="Save"/> 
</g:form> 

</body> 
</html> 

그러나 잘못된 데이터 두와 create.gsp의 작성 후 이상한 것은 모든 필드가 값 속성 사용자 콩 모든 필드의 일부 필드에 매핑 한 사실에도 불구하고 1) 발생 비어 있습니다

2) 페이지에 유효성 검증 오류가 없습니다 내가 잘못 했나요? 감사합니다.

답변

1

render()을 호출 한 후 반환 또는 create로 리디렉션 원래 코드에서 else

def save(User user) { 
    if (!user.save(flush: true)) { 
     render (view : 'create', model: [user: user]) 
     return // either return here 
    }else // or else here 

    redirect action: 'create' 
} 

를 사용하고 잘

+0

에 어떤 모델을 통과 없어야은, 당신이 시간의 몇 저장 :-) 감사합니다 나) –