Thursday, June 30, 2011

Struts 2 Interface

package com.vaannila.dao;

import com.vaannila.domain.User;
import java.util.List;

public abstract interface UserDAO
{
public abstract void saveOrUpdateUser(User paramUser);

public abstract List listUser();

public abstract User listUserById(Long paramLong);

public abstract void deleteUser(Long paramLong);
}

Struts 2 Implementation

package com.vaannila.dao;

import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;
import com.vaannila.domain.User;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class UserDAOImpl
implements UserDAO
{

@SessionTarget
Session session;

@TransactionTarget
Transaction transaction;

public void saveOrUpdateUser(User user)
{
try
{
this.session.saveOrUpdate(user);
} catch (Exception e) {
this.transaction.rollback();
e.printStackTrace();
}
}

public void deleteUser(Long userId)
{
try
{
User user = (User)this.session.get(User.class, userId);
this.session.delete(user);
} catch (Exception e) {
this.transaction.rollback();
e.printStackTrace();
}
}

public List listUser()
{
List courses = null;
try {
courses = this.session.createQuery("from User").list();
} catch (Exception e) {
e.printStackTrace();
}
return courses;
}

public User listUserById(Long userId)
{
User user = null;
try {
user = (User)this.session.get(User.class, userId);
} catch (Exception e) {
e.printStackTrace();
}
return user;
}
}

Struts 2 Form Bean

package com.vaannila.domain;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="USER")
public class User
{
private Long id;
private String name;
private String gender;
private String country;
private String aboutYou;
private Boolean mailingList;

@Id
@GeneratedValue
@Column(name="USER_ID")
public Long getId()
{
return this.id;
}
public void setId(Long id) {
this.id = id;
}

@Column(name="USER_NAME")
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}

@Column(name="USER_GENDER")
public String getGender() {
return this.gender;
}
public void setGender(String gender) {
this.gender = gender;
}

@Column(name="USER_COUNTRY")
public String getCountry() {
return this.country;
}
public void setCountry(String country) {
this.country = country;
}

@Column(name="USER_ABOUT_YOU")
public String getAboutYou() {
return this.aboutYou;
}
public void setAboutYou(String aboutYou) {
this.aboutYou = aboutYou;
}

@Column(name="USER_MAILING_LIST")
public Boolean getMailingList() {
return this.mailingList;
}
public void setMailingList(Boolean mailingList) {
this.mailingList = mailingList;
}
}

Struts Action 2

package com.vaannila.web;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.vaannila.dao.UserDAO;
import com.vaannila.dao.UserDAOImpl;
import com.vaannila.domain.User;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

public class UserAction extends ActionSupport
implements ModelDriven
{
private static final long serialVersionUID = -6659925652584240539L;
private User user = new User();
private List userList = new ArrayList();
private UserDAO userDAO = new UserDAOImpl();

public User getModel()
{
return this.user;
}

public String saveOrUpdate()
{
this.userDAO.saveOrUpdateUser(this.user);
return "success";
}

public String list()
{
this.userList = this.userDAO.listUser();
return "success";
}

public String delete()
{
HttpServletRequest request = (HttpServletRequest)ActionContext.getContext().get("com.opensymphony.xwork2.dispatcher.HttpServletRequest");
this.userDAO.deleteUser(Long.valueOf(Long.parseLong(request.getParameter("id"))));
return "success";
}

public String edit()
{
HttpServletRequest request = (HttpServletRequest)ActionContext.getContext().get("com.opensymphony.xwork2.dispatcher.HttpServletRequest");
this.user = this.userDAO.listUserById(Long.valueOf(Long.parseLong(request.getParameter("id"))));
return "success";
}

public User getUser() {
return this.user;
}

public void setUser(User user) {
this.user = user;
}

public List getUserList() {
return this.userList;
}

public void setUserList(List userList) {
this.userList = userList;
}
}

Hibernate Configin struts2


"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">


org.hsqldb.jdbcDriver
jdbc:hsqldb:hsql://localhost
sa

1
org.hibernate.dialect.HSQLDialect
true
create


Struts 2

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">




listUser


/register.jsp


/register.jsp


listUser