Как исключить параметры из XML, представленного в Grails? - PullRequest
4 голосов
/ 14 мая 2010

У меня есть класс:

class Category {
  String name
  SortedSet items
  static hasMany = [items:Item]
}

Внутри контроллера я отображаю категорию как XML (конвертеры):

   def getCategory = {
     render Category.read(1) as XML
   }

Но я хочу исключить элементы из рендеринга.

Как мне это сделать?

Спасибо

Ответы [ 3 ]

1 голос
/ 18 мая 2010

Вы можете просто вернуть Map только с теми свойствами, которые хотите включить:

def getCategory = {
    def category = Category.read(1)
    render [ id: category.id, name: category.name ] as XML
}
0 голосов
/ 29 марта 2015

Другой вариант - использовать плагин marshallers . Это позволяет вам определять собственный маршаллер либо на самом объекте, либо в другом месте. Например:

class Category {
  String name
  SortedSet items
  static hasMany = [items:Item]
  static marshallers {
    shouldOutputIdentifier false
    shouldOutputVersion false
    shouldOutputClass false
    elementName 'category'
    attribute 'name'
  }
}
0 голосов
/ 14 мая 2010

Вам необходимо создать второй класс домена, похожий на представление, и настроить отображение так, чтобы оно имело ту же таблицу, что и Category class

См. Полный ответ в этой теме: Как ограничить видимость свойств домена в Grails?

Фабьен.

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