`
rikugun
  • 浏览: 349780 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

grails 中如何将页面的list值传递到controller中

阅读更多
现在有一个模型比如作者和书
一个作者有多本书
class Author{
static hasMany = [books:Book]
}

class Book{
String title
}


我需要在同一个View 中添加多本书,根据Grails 1.1 RC2的用法
<g:textField name="books[0].title" value="the Stand" />
<g:textField name="books[1].title" value="the Shining" />
<g:textField name="books[2].title" value="Red Madder" />


但是在controller 中
println params.books //出错
println params."books[0]" //可以输出 the Stand


如何能够通过 params.books 获得所有的books呢?
分享到:
评论
5 楼 tongyi121 2009-03-07  
是我看错了,我试通的那一段跟你现在的一样。
4 楼 rikugun 2009-03-07  
tongyi121 写道

不加Command Objects是取不到的,你可以定义一个Command Objects,例如Groovy代码 class&nbsp;AuthorCommand&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;books&nbsp;=&nbsp;[]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;constraints&nbsp;=&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;}&nbsp;&nbsp;class AuthorCommand {
    List books = []
    static constraints = {
        ...
    }
}这个类不用另创建一个新的文件,需要将其定义到contorller的最后面然后将要提交的controller的那个闭包写成Groovy代码 def&nbsp;xxx&nbsp;=&nbsp;{AuthorCommand&nbsp;cmd-&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println&nbsp;cmd.books&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.....&nbsp;&nbsp;}&nbsp;&nbsp;def xxx = {AuthorCommand cmd-&gt;
    println cmd.books
    .....
}


谢谢,不过我试过了,还是不行,报错
引用
Caused by: org.springframework.beans.InvalidPropertyException: Invalid property 'books[1]' of bean class [ApplyCommand]: Index of out of bounds in property path 'books[1]'; nested exception is java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
    


我现在是通过,修改view
<g:textField name="titles[0]" value="the Stand" />
<g:textField name="titles[1]" value="the Shining" />
<g:textField name="titles[2]" value="Red Madder" />

然后在command object中
class BookCommand{
        List titles = []
        static constraints = {}
    }

这样来获取
3 楼 tongyi121 2009-03-07  
不加Command Objects是取不到的,你可以定义一个Command Objects,例如
class AuthorCommand {
    List books = []
    static constraints = {
        ...
    }
}

这个类不用另创建一个新的文件,需要将其定义到contorller的最后面
然后将要提交的controller的那个闭包写成
def xxx = {AuthorCommand cmd->
    println cmd.books
    .....
}
2 楼 rikugun 2009-03-05  
tongyi121 写道

你在接收的control里面写上println params看下就不就知道有没有了

你好,
params里只有
books[0]:[title:"the Stand"]
books[1]:[title:"the Shining"]
books[2]:[title:"Red Madder"]
books[0].title:"the Stand"
books[1].title:"the Shining"
books[2].title:"Red Madder"
1 楼 tongyi121 2009-03-04  
你在接收的control里面写上println params看下就不就知道有没有了

相关推荐

    Grails中文参考手册

    Controllers 在 Grails 中处理 HTTP 请求,调用 Service 进行业务逻辑处理,然后将结果传递给 Views 进行展示。控制器通过 Actions(动作)来定义可执行的操作。 **Views** Views 是 Grails 应用程序中的用户界面...

    grails中文参考手册

    《Grails中文参考手册》是针对Groovy编程语言构建的Web应用框架——Grails的一份详尽学习资料。Grails以其高效、灵活和强大的特性,成为开发人员在Java平台上构建Web应用的热门选择。这份手册旨在帮助初学者快速上手...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    FCKEditor是一款著名的在线文本编辑器,grails-fckeditor-0.9.5插件则是将其集成到Grails应用中的解决方案。以下是关键点: 1. 安装与配置:在Grails项目中添加插件依赖,然后通过配置文件调整编辑器的参数,如默认...

    grails中文入门简介

    在服务层,Grails支持声明式事务,并允许通过依赖注入将服务集成到应用程序中。服务的作用域和生命周期是Grails服务管理的一部分。Grails还支持使用Java服务,这允许Java开发者可以更容易地迁移到Grails。 测试是...

    Grails1.1中文文档

    2. **命令行工具**:Grails提供了强大的命令行工具,可以快速生成项目结构、控制器、服务、域类等,这在文档中会有详细介绍,包括`create-app`、`generate-controller`等命令的用法。 3. **领域驱动设计(Domain-...

    grails 中文手册

    - Controller 处理用户请求,调用Service层执行业务逻辑,最后将数据传递给View进行渲染。 3. **GORM(Grails Object Relational Mapping)** - GORM 是 Grails 提供的持久化框架,它提供了对数据库操作的简便...

    grails中文API

    本文将深入解析Grails中文API中的关键概念和技术点。 1. **Grails框架概述** Grails是基于Spring框架构建的,它整合了Groovy语言的强大功能和Java生态系统的优势。Grails遵循MVC(Model-View-Controller)设计模式...

    Grails入门精通及中文API

    - **Controller**: 处理用户请求,调用模型并准备数据,然后将数据传递给视图进行渲染。控制器是业务逻辑和用户界面之间的桥梁。 **2. Grails的特性** - **Groovy语言**: Grails的基础语言是Groovy,这是一种简洁...

    Grails Grails Grails

    Groovy 是一种动态类型的、面向对象的编程语言,它可以无缝集成到Java生态系统中,因为它的代码可以直接被Java虚拟机(JVM)执行。Groovy 的语法简洁且灵活,支持闭包和DSL(领域特定语言)编写,使得Grails的开发...

    grails中文文档

    7. **构建和部署**:学习 `grails war` 命令打包应用,以及如何将应用部署到各种服务器环境,如 Tomcat 或者 Heroku。 8. **持续集成与自动化测试**:Grails 支持单元测试和集成测试,学习如何编写测试用例,并利用...

    grails ajax

    标题"grails ajax"表明我们将探讨如何在Grails应用中有效地使用Ajax技术。Ajax允许后台与服务器进行异步数据交换,而无需重新加载整个网页。这在动态数据展示、表单提交、实时更新等场景中特别有用。 在Grails中,...

    grails中的上传,下载

    在Grails框架中,文件的上传与下载是常见的功能需求,尤其在开发涉及大量文档、图片或媒体文件处理的应用程序时。以下是对Grails中上传和下载操作的深入解析,包括其实现机制、代码示例及注意事项。 ### 文件上传 ...

    grails 中文第二版

    - 支持模型和视图的概念,用于数据传递和页面渲染。 - 支持重定向和链式调用,增强了路由的灵活性。 - 支持控制器拦截器,用于实现通用的逻辑,如权限检查。 - 支持数据绑定,自动将HTTP请求参数映射到控制器操作的...

    Grails1.1中文文档(CHM)

    Grails1.1最新 中文 文档 当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。 因此我们要以一种新的思维...

    Grails入门教程(二)

    在 Grails 中,我们可以使用脚手架来生成 Controller 和 View 代码。脚手架可以根据域类生成相应的 Controller 和 View 代码,以便我们快速开发应用程序。 例如,我们可以使用以下命令来生成 Team 和 Member 域的 ...

    Grails权威指南 Grails权威指南

    在Grails中,Controller处理请求,View呈现结果,Model则存储和管理业务数据。 3. **GORM(Grails Object-Relational Mapping)**:Grails的内置ORM工具,允许开发者以声明式的方式操作数据库,支持SQL的CRUD操作,...

    Eclipse下搭建Grails项目

    - 安装完成后,确保设置`GRAILS_HOME`环境变量,并将其路径添加到系统的`PATH`变量中,确保这两个变量都在同一级别(用户级或系统级)。 - 打开命令行,输入`grails`,如果显示帮助信息,表明Grails已成功安装。 ...

    Grails 1.1 中文手册 chm

    Grails 最新的 v1.1版的中文文档,chm格式,Grails是一套快速开发Web应用的开源框架,基于Groovy编程语言,并构建于Spring、Hibernate和其它标准Java框架之上,能为大家带来超高效率的一站式框架。

Global site tag (gtag.js) - Google Analytics