list - Grails:UPDATE函数如何工作?

标签 list grails controller

我摆脱了Grails提供的原始UPDATE gsp。

我将其放在list.gsp表的第一行中,并将该表的所有值更改为g:textfield,以便无需进入save.gsp即可对其进行编辑

但是现在我正在尝试使其工作,但我不能。

我在每一行的最后一列中添加了一个更新按钮。

当我更改g:textfields的值并单击更新按钮时,它告诉我
Density #ID updated
但值不会改变。

我认为 Controller 中的def update做错了。

这是代码:

def update = {
        log.info "Entering Action ${actionUri}"

        def densityInstance = Density.get(params.id)
        if (densityInstance) {

                if(params?.Rcommodity) { 
                    println "${params.Rcommodity}"

                }
            if (params.version) {
                def version = params.version.toLong()
                if (densityInstance.version > version) {

                    densityInstance.errors.rejectValue("version", "default.optimistic.locking.failure", [message(code: 'density.label', default: 'Density')] as Object[], "Another user has updated this Density while you were editing")
                    render(view: "list", model: [densityInstance: densityInstance])
                    return
                }
            }
            densityInstance.properties = params
            if (!densityInstance.hasErrors() && densityInstance.save(flush: true)) {
                flash.message = "${message(code: 'default.updated.message', args: [message(code: 'density.label', default: 'Density'), densityInstance.id])}"
                redirect(action: "list", id: densityInstance.id)
            }
            else {
                redirect(action: "list", id: densityInstance.id)
            }
        }
        else {
            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'density.label', default: 'Density'), params.id])}"
            redirect(action: "list")
        }
    }

Rcommodity是创建的文本字段的名称,我放置了一个println来查看该值是否正确,现在我不知道如何使该文本字段的值成为输入的文本字段,它为我提供了与之前相同的值但它给我的消息是它已更新。
Controller 是DensityController,域是密度

任何帮助将不胜感激。感谢:D

最佳答案

从正在打印的Flash消息中看,好像实例正在更新(尽管“#ID”位看起来很奇怪-您是否替换了实际ID?)。

可能是

densityInstance.properties = params

实际上与任何实例属性都不匹配,因此在保存之前实际上没有任何更改。您确定已将gsp输入字段命名为与Density类字段的名称匹配吗?例如,Rcommodity是密度的属性吗?

可能会帮助您添加gsp页面的表单位以及Density域类。

关于list - Grails:UPDATE函数如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3924987/

相关文章:

c# - 索引大文件的数据结构

grails - 在tagLib中生成的grails g.link中使用data- *属性

controller - Odoo 从 Web Controller 生成警告(弹出)

php - 为什么 Laravel 5.6 中没有删除表中的用户

ruby-on-rails - 如何以及在哪里处理关联记录的更新过程?

.net - 带有事件的集合 - 还有比 BindingList(of T) 更好的选择吗?

R 将列出的矩阵中的行附加到矩阵/数据帧,同时跳过缺失值

python - 嵌套列表理解示例

spring - 在 Grails 中动态设置消息 i18n

grails - 在gsp中定制链接