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

Validation grails中的用户定义表单验证,validation,grails,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) } }


我想验证三个表单字段。
通常的方法如下:

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)
  }
}
但在我的普惠制中,我会让所有三个文本字段使用相同的名称 例如:

名称:
密码:
个人信息:

如何验证此表单???

在表单中为要映射到同一域类中不同属性的输入字段指定相同名称是一种非常糟糕的做法。
但如果不能,字段将作为列表发送给控制器。因此,您可以像这样提取控制器中的值:

def parameterList=params.property as List

def name=parameterList[0]

def password=参数列表[1]

def personalInfo=参数列表[2]


然后您可以创建您的用户对象
def user=新用户(姓名:姓名、个人信息:个人信息、密码:密码)

if(user.save()){}else{}


作为最佳实践,您必须以不同的形式命名字段

谢谢您的回答。但是,不创建用户对象就可以直接作为列表进行验证吗?不,约束是在域类(或命令对象)中定义的,因此您需要创建它。假设我想在不创建用户对象的情况下将文本框作为列表进行验证,我的域类应该是什么样子的???也许你应该问问自己,为什么你试图以一种不同于人们所认为的方式来使用grails。@vasanth——同样,这是个坏主意。我不确定您到底想要实现什么,但命令对象可能是您正在寻找的解决方案。
<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>