0

我有一个通用的 DropDown 对象,它包含给定集合的名称。当它被加载时,我希望这个名称“评估”并加载正确的集合。

例如:

下拉对象:

class DDObject{
  String collectionName
}

在控制器中:

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

(不同的下拉列表在整个控制器上共享不同的集合,所以我不想专门将集合添加到 DD 对象)

在 gsp 中 - 类似于:

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

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

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

谢谢!

4

1 回答 1

2

可以使用 Groovy 进行评估,请在此处GroovyShell查看我的示例。但是当您对此使用用户输入时,我建议您不要这样做。

一种更简单的方法是使用当前请求来获取您的变量。检查此问题中的示例。

所以这可能有效:

<g:select name="foo" from="${request.getAttribute(dropDown.collectionName)}" />
于 2013-08-13T19:52:48.160 回答