Class Entity dan Controller Cimande2

Untitled Document

Ketemu lagi dengan saya Arilia..
Hari ini saya akan melanjutkan blog saya yang kemarin dulu. Yaitu Jalannya Contoh program dgn Cimande2.
Kalau kemarin hanya tampiannya saja, hari ini akan mulai saya berikan contoh code source nya. Sama sperti Cimande1,
kita mulai dengan class entity. Yaitu Item.java

 

Item.java

package org.blueoxygen.rest.geneology;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import org.blueoxygen.cimande.DefaultPersistence;

@Entity
@Table
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Item extends DefaultPersistence {
private String code, name, description;
private int price;
private Cate cate;

@OneToOne
public Cate getCate() {
return cate;
}

public void setCate(Cate cate) {
this.cate = cate;
}

@Column
public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

@Column
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Column
public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

@Column
public int getPrice() {
return price;
}

public void setPrice(int price) {
this.price = price;
}

public void setCate(Item caten) {

}

}

 

Lalu setelah kita berikan class Item.java, kita lanjutkan dengan memberikan class ItemController.java

package org.blueoxygen.rest.geneology.action;

import java.util.ArrayList;
import java.util.List;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.rest.HttpHeaders;
import org.blueoxygen.cimande.CimandeAction;
import org.blueoxygen.rest.geneology.Cate;
import org.blueoxygen.rest.geneology.Item;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import com.opensymphony.xwork2.ModelDriven;

@Action(value = "item", results = { @Result(name = CimandeAction.SUCCESS, type = "redirect", location = "/item") })
public class ItemController extends CimandeAction implements
ModelDriven<Object> {

protected Item item = new Item();
protected List<Item> items = new ArrayList<Item>();
protected Cate cate = new Cate();
protected List<Cate> cates = new ArrayList<Cate>();

public HttpHeaders index() {
Criteria crit = session.createCriteria(Item.class);
String skey = request.getParameter("skey");
crit.add(Restrictions.like("code", "%" + (skey == null ? "" : skey)+ "%"));
items = crit.list();

return headers.renderResult("item/item-result").disableCaching();
}

public String editNew() {
item = new Item();

return "item/item-add";
}

public String delete() {
item = (Item) session.get(Item.class, id);

session.beginTransaction();
session.delete(item);
session.getTransaction().commit();

return SUCCESS;
}

public String edit() {
item = (Item) session.get(Item.class, id);

return "item/item-edit";
}

public String show() {
System.out.println(item.getId());
item = (Item) session.get(Item.class, id);

Item p = (Item) session.get(Item.class, id);
String hql = "FROM " + Item.class.getName() + "";

return "item/item-detail";
}

public String create() {
save(true);

return SUCCESS;
}

public String update() {
save(false);

return SUCCESS;
}

private void save(boolean create) {
Item temp = new Item();
if (create) {
temp = item;
temp.setId(null);
} else {

temp = (Item) session.get(Item.class, id);
temp.setCode(item.getCode());
temp.setName(item.getName());
temp.setDescription(item.getDescription());
temp.setPrice(item.getPrice());

}

session.beginTransaction();
session.save(temp);
session.getTransaction().commit();
}

public Object getModel() {
return items.size() > 0 ? items : item;
}

}

Class ini berguna untuk mengatur jalannya program. Jadi tidak perlu lagi class struts.xml
Karena sudah digantikan dengan code
@Action(value = "item", results = { @Result(name = CimandeAction.SUCCESS, type = "redirect", location = "/item") })
Ini digunakan untuk memudahkan menuliskan url dalam tampilan. Jadi url dalam Cimande2 lebih simple daripada Cimande1
dan lebih memudahkan kita membacanya.
Di dalam project ini terdapat sebuah package yang isinya berupa file-file viewer(.jsp) yaitu seperti /item/item-result (de el el),
itu merupakan tahapan yang akan di jalankan.



Post a Comment:
  • HTML Syntax: Allowed