我创建了一个简单的表单并尝试将数据保存到数据库中。每当我输入数据并按下保存按钮时它会显示错误,但是当我手动输入网址时,它显示成功,但数据未保存在数据库中。
域
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>
答案 0 :(得分:0)
您在<g:actionSubmit value="Save"/>
处使用此情况action
表格将由{action}邀请按钮的value
属性决定(因为您没有在g:actionSubmit中使用'action'属性标签)即此处您的表单将在save
操作时提交,而不是在表单标记中定义的操作。您只需使用<g:submitButton name="save" value="Save" />
标记如果您希望表单应在表单标记中定义的网址提交。
如需进一步参考,您可以查看Grails doc