grails - Grails:动态构建下拉列表时,我想评估列表的名称

标签 grails eval

我有一个通用的DropDown对象,其中包含给定集合的名称。加载后,我希望此名称“已评估”并加载正确的集合。

例如:

DropDownObject:

class DDObject{
  String collectionName
}

在 Controller 中:
def collection1 = ["1","2","3","4"]
...
DDObject dd = new DDObject()
dd.collectionName = "collection1"
...
[collection1:collection1,dropDown:dd]

(不同的下拉菜单在整个 Controller 上共享不同的集合,因此我不想将集合专门添加到DD对象)

在gsp中-类似:
<g:select name="foo" from="${Eval.me(dropDown.collectionName)}" />

(换句话说-评估集合的名称,并从从 Controller 传递到gsp的映射中获取特定的集合)

我知道还有其他方法可以做到这一点,但是在这种情况下这种“评估”可能吗?

谢谢!

最佳答案

Groovy中的评估可以使用GroovyShell完成,请检查我的示例here。但我建议您在此时使用用户输入。

一种简单的方法是使用当前请求来获取变量。检查this question中的示例。

所以可能这可行:

<g:select name="foo" from="${request.getAttribute(dropDown.collectionName)}" />

关于grails - Grails:动态构建下拉列表时,我想评估列表的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18217210/

相关文章:

mysql - 从 Grails 访问 MySQL 服务器

Grails 传递参数并生成表单

Grails BootStrap 问题

python - 如何使用 eval 数据框方法在表达式中使用自定义函数?

php - 服务器端执行用户提交的代码

LISP 列表和范式

Python 保存一个 eval 函数

Grails 如何从域类的静态方法调用服务?

grails - GSP中的双重关闭失败

javascript - 检索 JSON 变量的值