我正在尝试在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;
}
}
谢谢
答案 0 :(得分:0)
我已经修好了,但我确信这不是一个正确的方法。
<g:form method="post" >
<g:select name="card" from="${Card.list()}" optionValue ="name" optionKey="id" />
<g:field name="amount" type="number" value="" required=""/>
<fieldset class="buttons">
<g:actionSubmit class="save" action="update" value="${message(code: 'default.button.update.label', default: 'Update')}" />
</fieldset>
</g:form>
这就是g:select的代码。在我的Controller方法中,将'card'的值传递给'Long id'会导致'id'为49(null + 1 = 49?)
def update(Long id, Long version) {
id = params.card;
id = id- 48;
...
}
现在我可以更新我的记录了,不过我很好奇我应该怎样做得更好。