从g获取值:在Grails中选择

时间:2013-09-09 14:30:23

标签: grails

我正在尝试在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;
    }
}

谢谢

1 个答案:

答案 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;
  ...  
}

现在我可以更新我的记录了,不过我很好奇我应该怎样做得更好。