我想验证三个表单字段。
通常的方法是这样的:
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>
如何验证此表格???
最佳答案
给将要映射到同一域类中不同属性的表单中的输入字段使用相同的名称是一种非常糟糕的做法。
但是,如果您不能这样做,这些字段将作为列表发送到您的 Controller 。因此,您可以像这样在 Controller 中提取值:def parameterList = params.property as List
def name = parameterList[0]
def password = parameterList[1]
def personalInfo = parameterList[2]
然后,您可以创建您的User对象def user = new User(name:name, personalInfo:personalInfo, password:password)
if (user.save()){ } else{ }
作为最佳实践,您必须以不同的形式命名字段
关于validation - 用户定义的表格验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12067318/