Struts 2.0 Hibernate 3.0 Integration

package com.tutorials4u.dao;

 

import java.util.List;

 

import com.tutorials4u.domain.User;

 

public interface UserDAO {

 

                public void saveUser(User user);

                public List<User> listUser();

}

 

 

 

 

 

package com.tutorials4u.dao;

 

import java.util.List;

 

import org.hibernate.Session;

import org.hibernate.Transaction;

 

import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;

import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;

import com.tutorials4u.domain.User;

 

public class UserDAOImpl implements UserDAO {

 

                @SessionTarget

                Session session;

                @TransactionTarget

                Transaction transaction;

 

                @SuppressWarnings("unchecked")

                public List<User> listUser() {      

                                List<User> courses = null;

                                try {

                                                courses = session.createQuery("from User").list();

                                } catch (Exception e) {

                                                e.printStackTrace();

                                }

                                return courses;

                }

 

                public void saveUser(User user) {

                                try {

                                                session.save(user);

                                } catch (Exception e) {

                                                transaction.rollback();

                                                e.printStackTrace();

                                }

                }

 

}

 

 

 

 

package com.tutorials4u.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 password;

                private String gender;

                private String country;

                private String aboutYou;

                private Boolean mailingList;

               

                @Id

                @GeneratedValue

                @Column(name="USER_ID")

                public Long getId() {

                                return id;

                }

                public void setId(Long id) {

                                this.id = id;

                }

               

                @Column(name="USER_NAME")

                public String getName() {

                                return name;

                }

                public void setName(String name) {

                                this.name = name;

                }

               

                @Column(name="USER_PASSWORD")

                public String getPassword() {

                                return password;

                }

                public void setPassword(String password) {

                                this.password = password;

                }

               

                @Column(name="USER_GENDER")

                public String getGender() {

                                return gender;

                }

                public void setGender(String gender) {

                                this.gender = gender;

                }

               

                @Column(name="USER_COUNTRY")

                public String getCountry() {

                                return country;

                }

                public void setCountry(String country) {

                                this.country = country;

                }

               

                @Column(name="USER_ABOUT_YOU")

                public String getAboutYou() {

                                return aboutYou;

                }

                public void setAboutYou(String aboutYou) {

                                this.aboutYou = aboutYou;

                }

               

                @Column(name="USER_MAILING_LIST")

                public Boolean getMailingList() {

                                return mailingList;

                }

                public void setMailingList(Boolean mailingList) {

                                this.mailingList = mailingList;

                }

 

}

 

 

 

 

 

 

package com.tutorials4u.web;

 

import java.util.ArrayList;

import java.util.List;

 

import com.opensymphony.xwork2.ActionSupport;

import com.opensymphony.xwork2.ModelDriven;

import com.tutorials4u.dao.UserDAO;

import com.tutorials4u.dao.UserDAOImpl;

import com.tutorials4u.domain.User;

 

public class UserAction extends ActionSupport implements ModelDriven<User> {

 

                private static final long serialVersionUID = 1L;

                private User user = new User();

                private List<User> userList = new ArrayList<User>();

                private UserDAO userDAO = new UserDAOImpl();

               

                public User getModel() {

                                return user;

                }

               

                public String add()

                {

                                userDAO.saveUser(user);

                                return SUCCESS;

                }

               

                public String list()

                {

                                userList = userDAO.listUser();

                                return SUCCESS;

                }

                               

                public User getUser() {

                                return user;

                }

 

                public void setUser(User user) {

                                this.user = user;

                }

 

                public List<User> getUserList() {

                                return userList;

                }

 

                public void setUserList(List<User> userList) {

                                this.userList = userList;

                }

 

}

 

 

Hibernate.cfg.xml

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC

              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

       <session-factory>

              <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

              <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/emp</property>

              <property name="hibernate.connection.username">root</property>

              <property name="connection.password">admin</property>

              <property name="connection.pool_size">1</property>

              <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

              <property name="show_sql">true</property>

              <property name="hbm2ddl.auto">create</property>

              <mapping class="com.tutorials4u.domain.User" />

       </session-factory>

</hibernate-configuration>

 

Struts.xml

 

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

 

<struts>

       <package name="default" extends="hibernate-default">

              <action name="addUser" method="add" class="com.tutorials4u.web.UserAction">

                     <result name="success" type="redirect">listUser</result>

              </action>

              <action name="listUser" method="list" class="com.tutorials4u.web.UserAction">

                     <result name="success">/register.jsp</result>

              </action>

       </package>

</struts>

 

 

Index.jsp

 

<META HTTP-EQUIV="Refresh" CONTENT="0;URL=listUser.action">

 

 

 

Register.jsp

 

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

       pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@taglib uri="/struts-tags" prefix="s"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Registration Page</title>

<s:head />

<style type="text/css">

@import url(style.css);

</style>

</head>

<body>

<s:form action="addUser">

       <s:textfield name="name" label="User Name" />

       <s:password name="password" label="Password" />

       <s:radio name="gender" label="Gender" list="{'Male','Female'}" />

       <s:select name="country" list="{'India','USA','UK'}" headerKey=""

              headerValue="Country" label="Select a country" />

       <s:textarea name="aboutYou" label="About You" />

       <s:checkbox name="mailingList"

              label="Would you like to join our mailing list?" />

       <s:submit />

</s:form>

 

<s:if test="userList.size() > 0">

       <div class="content">

       <table class="userTable" cellpadding="5px">

              <tr class="even">

                     <th>Name</th>

                     <th>Gender</th>

                     <th>Country</th>

                     <th>About You</th>

                     <th>Mailing List</th>

              </tr>

              <s:iterator value="userList" status="userStatus">

                     <tr

                           class="<s:if test="#userStatus.odd == true ">odd</s:if><s:else>even</s:else>">

                           <td><s:property value="name" /></td>

                           <td><s:property value="gender" /></td>

                           <td><s:property value="country" /></td>

                           <td><s:property value="aboutYou" /></td>

                           <td><s:property value="mailingList" /></td>

                     </tr>

              </s:iterator>

       </table>

       </div>

</s:if>

</body>

</html>

 

 

Style.css

 

@CHARSET "ISO-8859-1";

 

.content {

font-family: sans-serif;

font-size: small;

}

 

 

.userTable {

       border-width: 1px 1px 1px 1px;

       border-spacing: 2px;

       border-style: outset outset outset outset;

       border-color: black black black black;

       border-collapse: collapse;

}

 

.userTable td {

       border-width: 1px 1px 1px 1px;

       border-spacing: 2px;

       border-style: outset outset outset outset;

       border-color: black black black black;

       border-collapse: collapse;

}

 

.userTable th {

       border-width: 1px 1px 1px 1px;

       border-spacing: 2px;

       border-style: outset outset outset outset;

       border-color: black black black black;

       border-collapse: collapse;

       background-color: rgb(255, 255, 255);

}

 

.odd {

background-color: #FFFFF0;

}

 

.even {

background-color: #FAF0E6;

}

 

 



This e-mail and any attached files are confidential, proprietary, and may also be legally privileged information, and are intended solely for the use of the individual or entity to whom they are addressed. If you are not the intended recipient of this e-mail, please send it back to the person who sent it to you and delete the e-mail and any attached files and destroy any copies of it; you may call us immediately at + 91 22 6643 8000 or email us at IT-Security@tatainteractive.com

Tata Interactive Systems and/or any of its sister companies owns no responsibility for the views presented in the e-mail and any attached files unless the sender mentions so, with due authority of Tata Interactive Systems.

Unauthorized reading, reproduction, publication, use, dissemination, forwarding, printing or copying of this e-mail and its attachments is prohibited.

We have checked this message for any known viruses; however we decline any liability, in case of any damage caused by a non-detected virus.

For more details about our company, visit http://www.tatainteractive.com.

Comments

Popular Posts