用于呈现grails模板并将数据传递到此模板的最佳MVC设计?

时间:2009-11-26 16:49:50

标签: ajax model-view-controller design-patterns grails

我有一个模板,根据给定列表(从我的域层检索)呈现图表。此模板在同一页面上多次显示(使用不同的列表)(比如说“主页”)以及多个页面。

例如,

<g:render template="/template/chart" model="order: 'asc', orderBy: 'age', max: 5, domainClass: Person"></g:render>

应显示按年龄顺序排列的5人名单。

但问题是我需要通过查询域层来构建人员列表,不幸的是,这只能通过以下模板代码来完成:

<%
    def vizuService = grailsApplication.classLoader.loadClass('com.myapp.VizuService').newInstance()
%>
<img src="${vizuService.getChartImage(order, orderBy, max, domainClass)}"/>
//The service method getChartImage will query the DB 

这种设计存在缺陷,因为我正在通过View层检索我的数据。但, 我无法合理地将数据列表发送到模板通过主页控制器,因为控制器甚至可能不知道主页中显示了多少个图表(以及哪些数据)。

那么,我如何以 MVC方式设计它? (即,财务主任应负责获取/传递数据)。 TagLib是唯一的方法吗? (和IMO,TagLib并不真正尊重MVC原则)也许,AJAX是(唯一的)解决方案?

感谢你的想法。

1 个答案:

答案 0 :(得分:0)

我通过使用include标记解决了我的问题,该标记允许包含由另一个控制器/操作的响应呈现的部分视图