将多个选定的下拉值保存到 Grails 中的单个列中



如何在Grails中将多个选定的下拉值保存到一列中? 输入将如下所示

<g:select name="item1Price" from="${1..10}"/>
<g:select name="item2Price" from="${1..10}"/>
<g:select name="item3Price" from="${1..10}"/>

和输出应存储在一个字段中

ItemPrice: 2,8,6

你的问题有点模糊,所以希望一个有点模糊的答案也会有所帮助!

如果您有域对象 Foo:

class Foo {
String itemPrice
}

然后在控制器操作中,您可以执行以下操作:

def save() {
Foo f = new Foo()
f.itemPrice = [params.item1Price, params.item2Price, params.item3Price].join(",")
f.save()
}

实际上,您要做的只是将页面中的参数合并到一个字符串中,对吗?

现在这对我来说实际上是一个糟糕的设计。 如果订单发生更改,或者未为物料 2 选择任何内容,会发生什么情况? 或者,如果有人想要编辑您的对象并且您需要解析回值,会发生什么情况? 显然你可以用逗号分开...直到其中一个值包含逗号!

您最好为每个表示不同内容的字段存储一个值,或者将单个字段存储为结构化值。 例如,如果您真的只想在域对象中包含一个字段,则可能需要考虑将 Map 编码为 JSON 并存储该字段。

相关内容

  • 没有找到相关文章

最新更新