来自 Register.gsp
页面时,当我提交表单时,它的渲染良好,然后转到列表页面。但是问题是它不能保存任何数据。如果我通过dbconsole
添加数据,则 list.gsp
显示数据。可能是愚蠢的问题,但我在圣杯方面非常初学者。预先感谢。
域类:
package userreg
class Customer {
String name
Date birthday
String gender
String email
static constraints = {
name blank: false
email blank: false,unique:true
}
}
控制器:
package userreg
class CustomerController {
static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]
def index ={
render(view:'register')
}
def register()
{
}
def save ={
def customer=new Customer(params)
customer.save flush:true
redirect action:"list"
}
def list()
{
def customers=Customer.list()
[customers:customers]
}
}
查看 - 注册:
register.gsp
<!doctype html>
<head>
<title>Registration </title>
</head>
<body>
<div class="body">
<g:form controller="customer" action="save" >
<table>
<tr><td>Name</td><td><g:textField name="name"/> </td></tr>
<tr><td>Birthday</td><td><g:datePicker name="date" value="${new Date()}"
noSelection="['':'-Choose-']"/></td></tr>
<tr><td>Gender</td><td><g:radio name="gender" value="female"/>Female
<g:radio name="gender" value="male"/>Male</td></tr>
<tr><td>Email</td><td><g:textField name="email" value="user@email.com"/>
</td></tr>
<tr><td></td><td><g:submitButton name="save" value="save" /> </td></tr>
</table>
</g:form>
<div>
</body>
</html>
列表 - list.gsp:
<!doctype html>
<head>
<title>List of Customers </title>
</head>
<body>
<table border=1>
<tr>
<th>Name</th>
<th>Gender</th>
<th> Birthday</th>
</tr>
<g:each in="${customers}" var="customer">
<tr>
<td>${customer.name}</td>
<td>${customer.gender}</td>
<td>${customer.birthday}</td>
</tr>
</g:each>
</table>
</body>
</html>
您的模型无法保存可能是因为它具有验证错误。
更改
def save ={
def customer=new Customer(params)
customer.save flush:true
redirect action:"list"
}
到这个
def save ={
def customer=new Customer(params)
customer.save flush:true, failOnError:true
redirect action:"list"
}
它将引发一个错误,解释其无法保存模型的原因。