用户在grails中定义的表单验证

时间:2012-08-22 06:19:48

标签: validation 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>

如何验证此表格????

1 个答案:

答案 0 :(得分: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{ }

作为最佳做法,您必须以不同的格式为字段命名