UIButton *btn;
btn.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
Контроллер должен передать идентификатор на уровень службы, а затем вернуть все, что необходимо для отображения остальной части ответа HTTP.
Итак -
Map<String,Object> doGet (@RequestParam("id") int id) {
return serviceLayer.getStuffByDomainObjectId(id);
}
Все остальное будет загрязнять веб-слой, который не должен заботиться о постоянстве. Вся цель уровня сервиса - получить объекты домена и сказать им, что нужно выполнять свою бизнес-логику. Итак, вызов базы данных должен находиться на уровне обслуживания как таковой -
public Map<String,Object> getStuffByDomainObjectId(int id) {
DomainObject domainObject = dao.getDomainObjectById(id);
domainObject.businessLogicMethod();
return domainObject.map();
}
в моем проекте я использовал уровень обслуживания:
class ProductService {
void removeById(long id);
}
Я думаю, это будет зависеть от того, является ли служба удаленной или локальной. Как правило, я стараюсь передавать идентификаторы, где это возможно, удаленным службам, но предпочитаю объекты для локальных.
Это объясняется тем, что это уменьшает сетевой трафик, отправляя только то, что абсолютно необходимо удаленным службам, и предотвращает множественные вызовы DAO для локальные службы (хотя при кэшировании Hibernate это может быть точкой отключения локальных служб).