Kao sto pise u naslovu koristim Tapestry i Hibernate.
Imam stranicu koja ima formu za dodavanje novih proizvoda i ispod prikazuje listu tih proizvoda.
Code:
<html t:type="layout" title="Dodavanje proizvoda"
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd"
xmlns:p="tapestry:parameter">
<p>Dodavanje novog proizvoda</p>
<p>
<t:beaneditform object="newProduct"></t:beaneditform>
</p>
<p>
<t:zone t:id="list">
<t:grid source="products" row="product" value="product" add="delete">
<p:deletecell>
<t:actionlink t:id="delete" context="product">Delete</t:actionlink>
</p:deletecell>
</t:grid>
</t:zone>
</p>
</html>
<html t:type="layout" title="Dodavanje proizvoda"
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd"
xmlns:p="tapestry:parameter">
<p>Dodavanje novog proizvoda</p>
<p>
<t:beaneditform object="newProduct"></t:beaneditform>
</p>
<p>
<t:zone t:id="list">
<t:grid source="products" row="product" value="product" add="delete">
<p:deletecell>
<t:actionlink t:id="delete" context="product">Delete</t:actionlink>
</p:deletecell>
</t:grid>
</t:zone>
</p>
</html>
i java klasu date strane.
Code:
public class CreateProduct {
@Property
private Product newProduct;
@Persist("Entity")
@Property
private Product product;
@Inject
private Session session;
@InjectComponent
private Zone list;
@Property
private List<Product> productList = new ArrayList<Product>();
@CommitAfter
public void onSuccess(){
session.persist(newProduct);
}
public List<Product> getProducts(){
return session.createCriteria(Product.class).addOrder(Order.desc("name")).list();
}
public void onActionFromDelete(long id){
Product p = (Product) session.get(Product.class, id);
session.delete(p);
this.getProducts();
}
}
public class CreateProduct {
@Property
private Product newProduct;
@Persist("Entity")
@Property
private Product product;
@Inject
private Session session;
@InjectComponent
private Zone list;
@Property
private List<Product> productList = new ArrayList<Product>();
@CommitAfter
public void onSuccess(){
session.persist(newProduct);
}
public List<Product> getProducts(){
return session.createCriteria(Product.class).addOrder(Order.desc("name")).list();
}
public void onActionFromDelete(long id){
Product p = (Product) session.get(Product.class, id);
session.delete(p);
this.getProducts();
}
}
Problem je u poslednjoj metodi ona ne radi a nemam pojma zasto.