gpt4 book ai didi

Grails:
转载 作者:行者123 更新时间:2023-12-02 10:00:08 25 4
gpt4 key购买 nike

如何实现以下目标:

我的域中存储了一个 bool 值,默认情况下 Grails 会创建一个复选框作为控件。我想要一个带有值的选择控件:事件/非事件。选择 Active 时,应传递值 True和选择 InActive 时,应传递值 False

我怎样才能实现这个使用

<g:select name="status" from="" optionKey="" value=""  />

非常感谢。

最佳答案

我不知道这是否是最好的方法,但您可以使用枚举来完成这项工作:

public enum SelectOptions{
ACTIVE(true, 'Active'),
INACTIVE(false, 'InActive')

Boolean optionValue
String name

SelectOptions(boolean optionValue, String name){
this.optionValue = optionValue
this.name = name
}

static getByName(String name){
for(SelectOptions so : SelectOptions.values()){
if(so.name.equals(name)){
return so;
}
}
return null;
}

static list(){
[ACTIVE, INACTIVE]
}

public String toString(){
return name
}
}

将 SelectOptions 枚举的实例添加到您的域:

class MyDomain {
SelectOptions selectOptions = SelectOptions.ACTIVE
//Other properties go here

static constraints = {
selectOptions(inList:SelectOptions.list())
//other constraints
}
}

然后在您的 GSP View 中:

<g:select
name="status"
from="${myDomainInstance.constraints.selectOptions.inList}"
value="${myDomainInstance.selectOptions}" />

在 Controller 的保存方法中,您需要从 View 提交的字符串值中获取正确的枚举:

def save = {
SelectOptions selectOption = SelectOptions.getByName(params.status)
def myDomainInstance = new MyDomain(params)
myDomainInstance.selectOptions = selectOption
// proceed to save your domain instance
}

关于Grails:<g:选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2517488/

25 4 0

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