2017-09-11 9 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'プロパティを調べることです。 –

関連する問題