0


我想验证三个表单域。
通常的方法是这样的:

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>

如何验证此表格????

4

1 回答 1

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{ }

作为最佳实践,您必须以不同的方式命名表单中的字段

于 2012-08-22T06:42:02.870 回答