REST POST создать несколько объектов домена одновременно? - PullRequest
0 голосов
/ 10 февраля 2011

Мне быстро удалось получить классы домена для создания с помощью REST POST, но я застрял на том, как создать несколько созданий для файла XML с несколькими объектами одного типа, например, где, где я был успешным с

<Track>
       <trackAlbumName> Songs for Polar Bears </trackAlbumName>
       <trackArtistName> Snow PAtrol </trackArtistName>
       <trackSongTitle> First Song </trackSongTitle>
</Track>

Я добавил класс домена UploadTrackGroup и теперь хочу создать несколько объектов Track в одной и той же загрузке, например, я надеялся POST что-то вроде;1008 * Но будь я проклят, если смогу заставить его работать.

Когда я пытаюсь использовать следующий код в моем контроллере:

println params

params.UploadTrackGroup.each {
    println "-->" + it
}

Я вижу только одну дорожку, например

[action:create, controller:recognisedSong, UploadTrackGroup:[Track: F Sharp A Sharp  Godspeed You Black Emperor  Dead Flag BLues]]

-->Track= F Sharp A Sharp  Godspeed You Black Emperor  Dead Flag BLues

Ответы [ 2 ]

0 голосов
/ 18 февраля 2011

Мне удалось достичь того, что я хотел, эффективно игнорируя родительский узел UploadTrackGroup и просто используя

 request.XML.Track.each { 
                  println it.trackAlbumName.text() + " " + it.trackArtistName.text()
              }

Может показаться, что, как только я пытаюсь указать точный квалифицированный путь к узлам трека, т.е. UploadTrackGroup.Track.each или его различные варианты, он не работает.

Ну и дела.

0 голосов
/ 11 февраля 2011

Попробуйте:

def xml = request.XML
int tracksSize = xml.UploadTrackGroup[0].Track.size()
if (trackSize > 0) {
  def trackGroupXml = xml.UploadTrackGroup[0]
  for (int i = 0; i < tracksSize; ++i) {
    def albumName= x.Track[i].trackAlbumName.text()
    //Get other props out of XML, create domain object
  }
}

Возможно, вы также захотите назвать свой контроллер с помощью "RestController".См. об контроллерах .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...