Добрый день!
Пишу web-приложение на JSF+Spring+JDBC. И меня постоянно мучает вопрос, о правильной организации бинов....Например есть бизнес-объект
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
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 бин должен представлять собой аналогичный класс, с той лишь разницей, что в нем еще пишутся методы для работы с интерфейсом например так:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
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?