Добрый день! Пишу web-приложение на JSF+Spring+JDBC. И меня постоянно мучает вопрос, о правильной организации бинов....Например есть бизнес-объект
| Код | public class Picture {
private Integer ID; private String name; private String comments; private List<InventoryHolding> inventoryHoldings;
public String getComments() { return comments; }
public void setComments(String comments) { this.comments = comments; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public Integer getID() { return ID; }
public void setID(Integer ID) { this.ID = ID; }
public List<InventoryHolding> getInventoryHoldings() { return inventoryHoldings; }
public void setInventoryHoldings(List<InventoryHolding> inventoryHoldings) { this.inventoryHoldings = inventoryHoldings; }
|
По всем примерам которые я видел (Put JSF to Work) JSF бин должен представлять собой аналогичный класс, с той лишь разницей, что в нем еще пишутся методы для работы с интерфейсом например так:
| Код | public class PictureBean extends BaseBean {
private Integer ID; private String name; private List<InventoryHoldingBean> linkedInventory = new ArrayList<InventoryHoldingBean>();
public PictureBean() {}
public PictureBean(Integer ID, String name) { this.ID = ID; this.name = name; }
public List<InventoryHoldingBean> getLinkedInventoryHoldings() { List<InventoryHolding> linkedInventoryHoldings = serviceLocator.getIngredientService().getIngredientsLinkedToPicture(ID);
linkedInventory.clear(); for(InventoryHolding ih: linkedInventoryHoldings) { InventoryHoldingBean ihb = InventoryHoldingBuilder.getInventoryHoldingBean(ih); ihb.setServiceLocator(this.serviceLocator); linkedInventory.add(ihb); } return linkedInventory; }
public Integer getID() { return ID; }
public void setID(Integer ID) { this.ID = ID; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
private Integer inventoryHoldingIDToDelete;
public void setInventoryHoldingIDToDelete(Integer ID) { this.inventoryHoldingIDToDelete = ID; }
private InventoryHoldingBean getInventoryHoldingBean(Integer ID) { for (InventoryHoldingBean ihb : linkedInventory) if (ihb.getID().equals(ID)) return ihb; return null; }
public void deleteLink(ActionEvent ae) { }
|
Но не проще ли "подвернуть" бизнес объект в JSF-бин? И вообще как правильно организовывать объекты в связке JSF+Spring?
|