Следующее, что вы, вероятно, захотите сделать, - это связать данные, полученные действием вашего контроллера, с объектом команды и проверить их.

ь имееточень хорошая поддержка для привязки параметров запроса к объекту домена и его ассоциациям. Это в значительной степени зависит от определения параметров запроса, которые заканчиваются.id и автоматически загружать их из базы данных.

Однако не ясно, как заполнить ассоциации объекта команды. Возьмите следующий пример:

class ProductCommand {

    String name
    Collection<AttributeTypeCommand> attributeTypes 
    ProductTypeCommand productType
}

Этот объект имеет одностороннюю связь сProductTypeCommand и многоплановая связь сAttributeTypeCommand, Список всех типов атрибутов и типов продуктов доступен в реализации этого интерфейса.

interface ProductAdminService {
    Collection<AttributeTypeCommand> listAttributeTypes();
    Collection<ProductTypeCommand> getProductTypes();
}

Я использую этот интерфейс для заполнения списков выбора продуктов и типов атрибутов в GSP. Я также внедряю этот интерфейс в объект команды и использую его для «симуляции».attributeTypes а такжеproductType свойства объекта команды

class ProductCommand {

    ProductAdminService productAdminService

    String name   

    List<Integer> attributeTypeIds = []
    Integer productTypeId

    void setProductType(ProductTypeCommand productType) {
        this.productTypeId = productType.id
    }

    ProductTypeCommand getProductType() {
        productAdminService.productTypes.find {it.id == productTypeId}        
    }

    Collection<AttributeTypeCommand> getAttributeTypes() {

        attributeTypeIds.collect {id ->
            productAdminService.getAttributeType(id)
        }
    }

    void setAttributeTypes(Collection<AttributeTypeCommand> attributeTypes) {
        this.attributeTypeIds = attributeTypes.collect {it.id}
    }
}

На самом деле происходит то, чтоattributeTypeIds а такжеproductTypeId свойства привязаны к соответствующим параметрам запроса, а получатели / установщики "симулируют"productType а такжеattributeTypes свойства. Есть ли более простой способ заполнить ассоциации объекта команды?

Ответы на вопрос(4)

Ваш ответ на вопрос