【发布时间】:2011-06-14 11:23:32
【问题描述】:
我已经发布了这个问题,但我意识到这个问题不是我想要的。想象一下这个控制器:
class exampleController{
def action1 = {
...
[lala: lala, lele: lele]}
...
}
def action15 = {
...
[lala: lala, lele: lele]
}
我希望能够在此控制器中的所有操作中返回相同的参数。想象一下:
def book = Book.findAllByIsbn(Isbn.get(1))
[book: book]
除了在所有动作上编写所有相同的代码之外,还有什么方法可以做到这一点?这个方法我试过了,还是不行:
def action5 = {getModel()}
private getModel() {
def book = Book.findAllByIsbn(Isbn.get(1))
[book: book]
}
}
它不起作用,因为我的想法是,他不接受多个 [return1: aaa, return2: bbb]。请问有什么建议吗?我也尝试过像这里这样的过滤器:Grails controllers repeated code for all actions 但我无法让它发挥作用。如果可能的话,我会对任何解决方案进行详细的解释:p 在此先感谢, 弗吉尼亚州
【问题讨论】:
-
您的问题是如何为不同的控制器操作重用一种方法或闭包?
-
再说一次,谁'他'不接受多个什么?
getModel()函数实际上可以return具有多个值的 Map,这看起来完全符合您的需要。 -
@Ruben 基本上,我希望能够在该控制器的所有操作中使用重复该代码。随心所欲地调用它
-
想象我的动作已经有这样的东西 [fav: fav, par: par]。然后我调用 getModel()。出于某种原因,我不知道为什么,它不起作用,但如果我手动复制代码并加入两个 [..] [..] 返回它确实有效,我想弄清楚
标签: grails filter controller action