我有一个通用的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/