Как связать данные в командный объект, который имеет вложенное свойство?(не домен объект)

StackOverflow https://stackoverflow.com/questions/9011156

  •  14-11-2019
  •  | 
  •  

Вопрос

Я пытаюсь связать некоторые данные для объекта, который является частью командного объекта.Объект остается NULL, пытаясь его использовать.Вероятно, я не даю правильные данные в 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
}
.

Любое предложение по тому, почему переплет «книга. Title» не удается?

Это было полезно?

Решение

Попробуйте инициализировать его перед привязкой, как:

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

Другие советы

Просто быстрое удар на нем.

Имя поля формы, вероятно, должно быть book_title, а не использовать период (не уверена, если он станет проблемой при обработке в контроллере).

<g:textField name="book_title" value="Lord Of the Rings"/><br>
.

В вашем контроллере сначала создайте модель вашей книги, затем назначьте ее в класс, который вы хотите.

def create = {
  def mybook = new Book()
  mybook.title = params.book_title
  def binder = new BooksBindingCommand()
  binder.book = mybook
}
.

- это модель книг?Потому что я не уверен, что вы пытаетесь достичь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top