grails - 如何将数据绑定(bind)到具有嵌套属性的命令对象? (非域对象)

标签 grails groovy command-objects

我正在尝试将一些数据绑定(bind)到作为命令对象一部分的对象。该对象在尝试使用它时保持为空。可能我没有在 gsp 中提供正确的数据,但我不知道我做错了什么!

我希望当我提交一个字段名称为“book.title”的表单时,它会被映射到命令对象中……但这失败了……标题保持 [null]

每当我更改命令对象和表单以使用字符串标题作为属性时,它都会起作用..

// the form that submits the data
<g:form>
   <g:textField name="book.title" value="Lord Of the Rings"/><br>
   <br><br>
   <g:actionSubmit action="create" value="Create!"/>
</g:form>


// the controller code
def create = { BooksBindingCommand cmd ->
   println cmd?.book?.title // the book property always stays null
   redirect(action: "index")
}

// the command object
class BooksBindingCommand {
   Book book
}

// the book class, simple plain groovy class
class Book {
   String title
}

关于为什么'book.title'的绑定(bind)失败的任何建议?

最佳答案

尝试在绑定(bind)之前对其进行初始化,例如:

// the command object
class BooksBindingCommand {
   Book book = new Book()
}

关于grails - 如何将数据绑定(bind)到具有嵌套属性的命令对象? (非域对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9011156/

相关文章:

oracle - Grails的save(flush:true)将线程卡在socketRead0中

matrix - Jenkins 矩阵构建。升级后组合过滤器 groovy 脚本失败

post - chalice 3 : Binding multiple command objects via POST

javascript - Grails如何在没有资源插件的情况下处理静态文件?

unit-testing - 使用File类进行Grails Spock测试

grails - 是否可以在没有来源的情况下将grails插件交付给客户

Java 8 : Generating String ID from Long

xml - 在 grails 中以 CSV 格式呈现

mysql - asp 命令对象在参数(包括编码)上执行错误