Не удается сохранить данные в базе данных в Grails
Я создал простую форму и пытаюсь сохранить данные в базу данных. всякий раз, когда я ввожу данные и нажимаю кнопку "Сохранить", появляется сообщение "Ошибка", но когда я вручную набираю URL, он показывает успех, но данные не сохраняются в базе данных.
Домен:
package com.anurag
class List {
String name
Date joining
int phone
boolean permanent
float salary
static constraints = {
}
}
контроллер:
package com.anurag
import groovy.sql.GroovyRowResult
class ListController {
static defaultAction = "showData"
ListService listService
def showData = {
java.util.List<GroovyRowResult> result = listService.getList()
[result: result]
}
def inputData = {
}
def saveData = {
def list = new List(params)
if(list.validate()) {
list.save()
render "Success!"
}
else{
list.errors.allErrors.each{
println it
}
}
}
}
inputData.gsp:
<meta name="layout" content="main"/>
<script type="text/javascript">
</script>
<g:form controller="list" action="saveData">
<label>Name: </label>
<g:textField name="name"/><br/>
<label>Joining: </label> <g:textField name="joining"/><br/>
<label>Phone No.: </label> <g:textField name="phone"/><br/>
<label>Permanent: </label> <g:textField name="permanent"/><br/>
<label>Salary: </label> <g:textField name="salary"/><br/>
<g:actionSubmit value="Save"/>
</g:form>
1 ответ
Вы используете здесь <g:actionSubmit value="Save"/>
в этом случае action
формы будут определены value
атрибут кнопки actionSubmit (так как вы не использовали атрибут 'action' в теге g:actionSubmit), т.е. здесь ваша форма будет отправлена на save
действие, а не действие, определенное в теге формы. Вы можете просто использовать <g:submitButton name="save" value="Save" />
тег Если вы хотите, чтобы форма отправлялась по адресу, указанному в теге формы.
Для дальнейшего ознакомления вы можете проверить документацию Grails