如何为每个操作设置模型属性

时间:2010-03-12 08:58:36

标签: grails

之前我使用Spring MVC和注释@ModelAttribute。

@Controller
public class ArticleController {

    @ModelAttribute("articles")
    public List<Testset> getArticles(){
        return articleDao.all();
    }

    @RequestMapping("/first.htm")
    public void first(){                       

    } 
}

如何在Grails控制器中实现此行为?

class ArticleController{

    //this variable I want to in every action
    List articles 

    def first = { }   
    def second = { } 
    def third = { } 
}

当然,我可以将此代码用于每个操作

def first = {
  this.articles = Article.all()
}

但我不想这样。

非常感谢你的帮助。 托马什

1 个答案:

答案 0 :(得分:4)

您可以定义一个After拦截器并将数据添加到模型中:

class ArticleController {

   def afterInterceptor = { model ->
      model.articles = Article.list()
   }

   def first = { }   
   def second = { } 
   def third = { } 
}

此处的文档位于:http://grails.org/doc/latest/ref/Controllers/afterInterceptor.html