【发布时间】:2013-09-09 14:30:22
【问题描述】:
我正在尝试在我的 grails 应用程序中创建自己的“编辑”表单。
我的 g:select 当前填充了我的数据库中的内容,如下所示:
<g:select name="nameList" from="${Card.list()}" value="${name} " />
然后是值:
<g:field name="amount" type="number" value="" required=""/>
我的域只有两个变量 - 名称和数量。我想从下拉框中选择项目,输入金额然后单击“更新”,我的更新方法是由 grails 生成的默认方法,因此它需要 ID 和版本,我将如何传递它?
我的更新按钮;
<g:actionSubmit class="save" action="update" value="${message(code: 'default.button.update.label', default: 'Update')}" />
我的域名代码:
package cardstorage
class Card {
String name;
int amount;
static constraints = {
name(blank:false);
amount(blank:false);
}
String toString(){
return name;
}
}
谢谢
【问题讨论】:
-
我假设单击更新不起作用。当您单击更新按钮时,您遇到了什么样的错误?
-
我收到“未找到 ID 为空的卡”错误。
-
您的域类是否使用自定义 ID 生成器?例如,
generator: assigned?请复制并粘贴域类好吗? -
修改了我的问题。
-
您的视图是否使用 Grails 脚手架?确保您有一个包含 ID 的隐藏字段,否则您的 ID 在尝试更新时将为空,因为它没有传递给
Update控制器操作。例如,<g:hiddenField name="id" value="${cardInstance?.id}" />如果您使用的是脚手架,则会出现,但如果不是,您可能需要自己添加。
标签: grails