gpt4 book ai didi

嵌入式 bool 值的 Grails 数据绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 01:22:40 26 4
gpt4 key购买 nike

我在嵌入类中的 bool 值自动数据绑定(bind)方面遇到问题。我为此创建了一个示例:

域类:

class TestMe {

TestEmbedded testEmbedded = new TestEmbedded()

static embedded = ['testEmbedded']

static constraints = {
}
}

嵌入式类:

class TestEmbedded {

String stringEmbedded = "test"
Boolean booleanEmbedded = false
}

Controller :

class TestMeController {

static scaffold = true
}

脚手架编辑和创建可以正确呈现输入。当我创建或编辑即时时,嵌入属性工作正常。只有一个问题。当我尝试将 TestMe.testEmbedded.booleanEmbedded 从真值编辑为假值(使用复选框)(其他方式编辑有效!)时,数据绑定(bind)不起作用。这是grails的bug吗?有什么好的解决办法吗?

最佳答案

通过在 Controller 中打印参数,确保设置为 false 时该字段确实被传递。您必须在 Controller 中创建一个虚拟更新方法来测试这一点:

class TestController {

static scaffold = true

def update() {
params.each {
printing it
}
}
}

标准 HTML 表单不会发送未选中的复选框;如果您使用的是 g:checkBox

,Grails 会创建一个隐藏变量(始终会发送),并在复选框名称前面添加下划线来处理此问题

如果表单未使用g:checkBox,您可以手动创建隐藏变量或使用 Controller 中的逻辑处理它。查看生成页面的源代码可能会有所帮助。

希望这有帮助!

关于嵌入式 bool 值的 Grails 数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13083210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com