一步一步学grails(14)

【Grails 框架详解:构建高级查询功能】 Grails 是一款基于 Groovy 语言的开源 Web 应用框架,它提供了丰富的功能和简洁的语法,使得开发人员能够高效地构建复杂的 Web 应用程序。在本教程中,我们将探讨如何在 Grails 中实现一个“高级查询”功能,包括创建新页面、定义控制器方法以及更新模型。 1. **创建高级查询链接** 在 `grails-app/view/productionNo/list.gsp` 文件中,我们添加了一个指向高级查询页面的链接。这段代码使用了 `<g:link>` 标签,该标签是 Grails 的标签库的一部分,用于生成 URL 并处理链接。`controller="planning"` 和 `action="search_advanced"` 参数指定了目标控制器和动作,`params="[flag:1]"` 则传递了一个参数 `flag`,值为 1。 2. **定义控制器动作** 在 `grails-app/controllers/PlanningController.groovy` 中,我们需要创建一个新的 action,名为 `search_advanced`。在这个方法中,我们可以处理用户从高级查询页面提交的数据,例如,对数据进行过滤和排序,然后返回查询结果。 ```groovy def search_advanced = { // 接收并处理来自页面的查询参数 def begin = params.begin def end = params.end // ... 其他参数如协作单位、备件名称等 // 根据参数执行查询 def queryResults = Planning.findAllBy... // 使用参数构建查询条件 // 将查询结果绑定到视图 [queryResults: queryResults] } ``` 3. **创建高级查询页面** 在 `grails-app/views/planning/search_advanced.gsp` 中,我们设计了查询表单,包含了多个输入字段,如日期范围、协作单位、备件名称等。每个字段都与控制器中的参数相对应,如 `name="begin"` 和 `name="end"` 对应日期范围,`name="coo.id"` 对应协作单位的选择。`g:select` 标签用于生成下拉列表,`from="${['']+ProcessType.list()}"` 表示从 `ProcessType` 类的实例中获取所有选项。 4. **添加模型字段** 为了能够按照日期查询生产计划,我们需要在 `Planning` 域类中添加一个“创建日期”字段。在 `grails-app/domain/Planning.groovy` 文件中,我们添加: ```groovy class Planning { Date feteDay // 创建日期 // ... 其他属性和方法 } ``` 5. **处理查询逻辑** 在 `PlanningController` 的 `save` 或其他适当的 action 中,我们需要处理用户提交的查询数据。例如,将 `params.feteDay` 转换为 `Date` 对象,并根据这个日期以及其他参数进行查询: ```groovy def save = { // ... planningInstance.feteDay = new Date.parse('yyyy-MM-dd', params.feteDay) // 解析日期字符串 // ... 处理其他参数 } ``` 总结来说,这个教程展示了如何在 Grails 中通过创建新的视图和控制器方法来实现一个高级查询功能,包括处理日期范围、下拉列表选择、文本输入等多种查询条件。同时,还涉及到了领域模型的扩展和数据的查询操作。通过这个实践,开发者可以更好地理解和掌握 Grails 框架中 MVC 结构的应用,以及 Groovy 语言的特性。































- lbb39992014-12-22grails入门教程

- 粉丝: 5216
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源


