2012-08-22 3 views
0


세 가지 양식 필드의 유효성을 검사하고 싶습니다.grails에서 사용자 정의 폼 유효성 검사

class User { 

    String name 
    String password 
    String personalInfo 

    static constraints = { 
    name(size: 4..20, unique:true, blank:false) 
    password(size:8..20, blank:false) 
    personalInfo(size: 1000, nullable:true) 
    } 
} 

하지만 내 GSP에서 나는 같은 이름 예에서 세 개의 텍스트 필드를 낳게 될 것이다 :
일반적인 방법은 다음과 같이이다

<td>Name:</td><td><g:textfield name="property"/></td> 
<td>Password:</td><td><g:textfield name="property"/></td> 
<td>PersonalInfo:</td><td><g:textfield name="property"/></td> 

방법이 양식을 검증 ??? ?

답변

2

동일한 도메인 클래스의 다른 속성에 매핑 될 양식의 입력 필드에 같은 이름을 지정하는 것은 매우 나쁜 습관입니다.
하지만 그럴 수 없다면 필드가 컨트롤러 목록으로 전송됩니다. 이 같은 컨트롤러에서 값을 추출 할 수 있습니다 :

def parameterList = params.property as List
def name = parameterList[0]
def password = parameterList[1]
def personalInfo = parameterList[2]

그런 다음 당신은 당신의 사용자 개체를 만들 수 있습니다
def user = new User(name:name, personalInfo:personalInfo, password:password)
if (user.save()){ } else{ }

가장 좋은 방법은 양식의 필드 이름을 다르게 지정해야합니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 사용자 개체를 만들지 않고 목록으로 직접 유효성을 검사 할 수 있습니까? –

+0

아니요, 제약 조건은 도메인 클래스 (또는 Command 개체)에 정의되어 있으므로이를 만들어야합니다. –

+0

사용자 개체를 만들지 않고 목록으로 내 텍스트 상자의 유효성을 검사하고 도메인 클래스를 어떻게 표시해야합니까? –