2017-09-11 2 views
0

Register.gsp页面当我提交表单时,它呈现良好并进入列表页面。但问题是它不保存任何数据。如果我通过dbconsole添加数据,则list.gsp显示数据。可能是愚蠢的问题,但我在Grails中很初学。提前致谢。无法手动将数据保存到Grails中的数据库中,但使用dbconsole时效果不错

域类:

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="[email protected]"/> 
    </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> 
+0

你的问题是什么?你想做什么,你尝试了什么,你得到了什么结果?更新问题的主体。提醒:这里没有人想要为你调试你的代码。你需要表明你愿意做这项工作。 – jdv

回答

0

你的模型没有可能节省,因为它有验证错误。

变化

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

它会抛出一个错误解释为何没能保存模型的原因。

+1

更好的办法是检查调用'.save(...)'的返回值,或者检查'errors'属性。 –

相关问题