我们如何在gsp页面中的<g:each>中使用sql查询</g:each>

时间:2011-08-02 10:58:36

标签: sql grails gsp

是否可以使用g:each

迭代sql查询
 <g:each in="${Books.list()}">

而不是这个如何使用SQL查询

 select author,publisher from books,publisher where book_name="" and book_title=""...

2 个答案:

答案 0 :(得分:9)

为了好的设计,我们可以说这是不可能的。

您应该坚持使用MVC模式的原则,并将此代码保存在您的控制器或域类中。

您的控制器可能看起来像这样......

def list = {
    def results = Book.executeQuery(sql);
    [results:results]
}

您的观点(gsp)可能看起来像这样......

<ul>
    <g:each in="${results}" var="result">
      <li>${result}</li>
    </g:each>
</ul>

答案 1 :(得分:0)

在gsp中不建议这样做。相反,您应该在控制器中执行数据处理,然后将结果传递给您的gsp。优点:

  1. 更好的概述
  2. 更容易访问服务和其他帮助类
  3. 更易于维护
  4. 使用serivces封装您的登录以获得可重用性
  5. ...
  6. 如果你想在gsp中使用它,你可以使用hql查询,例如:

    Author.executeQuery("select a from Author as a")
    
相关问题