Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Бины в EE


Автор: stg_unholy 23.10.2006, 16:29
Добрый день! 
Пишу 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?

Автор: serious 25.10.2006, 13:48
ИМХО, твой бин правильный... Вообще, зачем перегружать его лишней и наверное ненужной логикой, и так все будет работать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)