1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

I want to call action class While Application loads First Time in Struts2

Discussion in 'Java' started by shafsi, May 21, 2012.

  1. shafsi

    shafsi New Member

    Joined:
    May 21, 2012
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    Hi,

    I have an application which Displays the Contact information when i submit through provided text box. But i want that when application loads first time it should display the data from database with submitting the data from JSP. at first time it does'nt shows data but when i press submitt it shows current with all data present in database table.

    My JSP is as below

    Code:
    
    <html>
    <head>
        <title>Contact Manager - Struts2 Hibernate Example</title>
    </head>
    <body>
    
    <h1>Contact Manager</h1>
    <s:actionerror/>
    <s:form action="add" method="post">
        <s:textfield name="contact.firstName" label="Firstname"/>
        <s:textfield name="contact.lastName" label="Lastname"/>
        <s:textfield name="contact.emailId" label="Email"/>
        <s:textfield name="contact.cellNo" label="Cell No."/>
        <s:textfield name="contact.website" label="Homepage"/>
        <s:textfield name="contact.birthDate" label="Birthdate"/>
        <s:submit value="Add Contact" align="center"/>
    </s:form>
      
    <h2>Contacts</h2>
    <table>
    
    <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Cell No.</th>
        <th>Birthdate</th>
        <th>Homepage</th>
        <th>Delete</th>
    </tr>
    
    
    
    </table>
    </body>
    </html>
    
    web.xml

    Code:
      <display-name>ContactManager</display-name>
          <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
          <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
      
    </web-app>
    
    Action Class

    Code:
    package net.shafquat.contact.view;
     
    import java.util.List;
    
    import net.shafquat.contact.controller.ContactManagerController;
    import net.shafquat.contact.model.Contact;
     
    import com.opensymphony.xwork2.ActionSupport;
    
     
    public class ContactAction extends ActionSupport {
     
        private static final long serialVersionUID = 9149826260758390091L;
        private Contact contact;
        private List<Contact> contactList;
        private Long id;
     
        private ContactManagerController contactManagerController;
     
        public ContactAction() {
            System.out.println("ContactAction called before execute ");
            contactManagerController = new ContactManagerController();
            System.out.println("ContactAction called before execute1 ");
        }
        public String execute() {
            System.out.println("entering into execute of ContactAction");
            this.contactList = contactManagerController.list();
            System.out.println("entering into execute of ContactAction1"+SUCCESS);
            return SUCCESS;
        }
     
        public String view() {
            try {
                System.out.println("add called after execute()");
                contactManagerController.view(getContact());
                System.out.println("add called after execute()1");
            } catch (Exception e) {
                e.printStackTrace();
            }
            this.contactList = contactManagerController.list();
            System.out.println("add called after execute()2"+SUCCESS);
            return SUCCESS;
        }
        
        public String add() {
            try {
                System.out.println("add called after execute()");
                contactManagerController.add(getContact());
                System.out.println("add called after execute()1");
            } catch (Exception e) {
                e.printStackTrace();
            }
            this.contactList = contactManagerController.list();
            System.out.println("add called after execute()2"+SUCCESS);
            return SUCCESS;
        }
        public String delete() {
            System.out.println("delete called after execute()");
            contactManagerController.delete(getId());
            System.out.println("delete called after execute()1"+SUCCESS);
            return SUCCESS;
        }
     
        public Contact getContact() {
            System.out.println("getContact called after execute()======"+contact);
            return contact;
        }
     
        public List<Contact> getContactList() {
            System.out.println("getContactList called after execute()======"+contactList);
             
            return contactList;
        }
     
        public void setContact(Contact contact) {
            System.out.println("setContact called after execute()======"+contact);
            this.contact = contact;
            System.out.println("setContact called after execute()1======"+contact);
        }
     
        public void setContactList(List<Contact> contactsList) {
            System.out.println("setContactList called after execute()======"+contactsList);
            this.contactList = contactsList;
            System.out.println("setContactList called after execute()1======"+contactsList);
        }
     
        public Long getId() {
            System.out.println("getId called after execute()======"+id);
            return id;
        }
     
        public void setId(Long id) {
            System.out.println("setId called after execute()======"+id);
            this.id = id;
            System.out.println("setId called after execute()1======"+id);
        }
    }
    
    Connection Class

    Code:
    package net.shafquat.contact.util;
     
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.AnnotationConfiguration;
     
    public class HibernateUtil {
     
        private static final SessionFactory sessionFactory = buildSessionFactory();
     
        private static SessionFactory buildSessionFactory() {
            
            try {
                // Create the SessionFactory from hibernate.cfg.xml
                System.out.println("SessionFactory buildSessionFactory()");
                return new AnnotationConfiguration().configure().buildSessionFactory();
                
            } catch (Throwable ex) {
                System.err.println("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
            
        }
        public static SessionFactory getSessionFactory() {
            System.out.println("SessionFactory getSessionFactory() --- "+sessionFactory);
            return sessionFactory;
        
        }
    }
    
    
    Model Class
    
    [code]
    
    
    package net.shafquat.contact.model;
     
    import java.io.Serializable;
    import java.sql.Date;
     
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Table;
     
    @Entity
    @Table(name="Contacts")
    public class Contact implements Serializable{
     
        private static final long serialVersionUID = -8767337896773261247L;
     
        private Long id;
        private String firstName;
        private String lastName;
        private String emailId;
        private String cellNo;
        private Date birthDate;
        private String website;
     
        private Date created;
     
        @Id
        @GeneratedValue
        @Column(name="id")
        public Long getId() {
            System.out.println("In getId()=="+id);
            return id;
        }
        @Column(name="firstname")
        public String getFirstName() {
            System.out.println("In getFirstName()=="+firstName);
            return firstName;
        }
        @Column(name="lastname")
        public String getLastName() {
            System.out.println("In getLastName()=="+lastName);
            return lastName;
        }
        @Column(name="email_id")
        public String getEmailId() {
            System.out.println("In getEmailId()=="+emailId);
            return emailId;
        }
        @Column(name="cell_no")
        public String getCellNo() {
            System.out.println("In getCellNo()=="+cellNo);
            return cellNo;
        }
        @Column(name="birthdate")
        public Date getBirthDate() {
            System.out.println("In getBirthDate()=="+birthDate);
            return birthDate;
        }
        @Column(name="website")
        public String getWebsite() {
            System.out.println("In getWebsite()=="+website);
            return website;
        }
        @Column(name="created")
        public Date getCreated() {
            System.out.println("In getCreated()=="+created);
            return created;
        }
        public void setId(Long id) {
            System.out.println("In setId()=="+id);
            this.id = id;
            System.out.println("In setId()=="+id);
        }
        public void setFirstName(String firstName) {
            this.firstName = firstName;
            System.out.println("In setFirstName()=="+firstName);
        }
        public void setLastName(String lastName) {
            this.lastName = lastName;
            System.out.println("In setLastName()=="+lastName);
        }
        public void setEmailId(String emailId) {
            this.emailId = emailId;
            System.out.println("In setEmailId()=="+emailId);
        }
        public void setCellNo(String cellNo) {
            this.cellNo = cellNo;
            System.out.println("In setCellNo()=="+cellNo);
        }
        public void setBirthDate(Date birthDate) {
            this.birthDate = birthDate;
            System.out.println("In setBirthDate()=="+birthDate);
        }
        public void setCreated(Date created) {
            this.created = created;
            System.out.println("In setCreated()=="+created);
        }
        public void setWebsite(String website) {
            this.website = website;
            System.out.println("In setWebsite()=="+website);
        }
    }
    
    Controller Class
    
    
    package net.shafquat.contact.controller;

    import java.util.List;


    import org.hibernate.HibernateException;
    import org.hibernate.classic.Session;

    import net.shafquat.contact.model.Contact;
    import net.shafquat.contact.util.HibernateUtil;

    public class ContactManagerController extends HibernateUtil {

    public Contact add(Contact contact) {
    System.out.println("In == public Contact add(Contact contact) == ContactManagerController");
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    System.out.println("In == public Contact add(Contact contact) == ContactManagerController1");
    session.beginTransaction();
    System.out.println("In == public Contact add(Contact contact) == ContactManagerController2");
    session.save(contact);
    System.out.println("In == public Contact add(Contact contact) == ContactManagerController3");
    session.flush();
    System.out.println("In == public Contact add(Contact contact) == ContactManagerController4");
    session.getTransaction().commit();
    System.out.println("In == public Contact add(Contact contact) == ContactManagerController5");

    return contact;
    }
    public Contact view(Contact contact2) {
    System.out.println("In == public Contact view(Contact contact2) == ContactManagerController");
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    System.out.println("In == public Contact view(Contact contact2) == ContactManagerController1");
    session.beginTransaction();
    System.out.println("In == public Contact view(Contact contact2) == ContactManagerController2");
    return contact2;

    }

    public Contact delete(Long id) {
    System.out.println("In == public Contact view(Contact contact2) == ContactManagerController2");
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    System.out.println("In == public Contact view(Contact contact2) == ContactManagerController2");
    session.beginTransaction();
    System.out.println("In == public Contact view(Contact contact2) == ContactManagerController2");
    Contact contact = (Contact) session.load(Contact.class, id);
    System.out.println("In == public Contact view(Contact contact2) == ContactManagerController2");
    if(null != contact) {
    System.out.println("In == if(null != contact) == ContactManagerController2.public Contact delete(Long id)");
    session.delete(contact);
    System.out.println(contact+" ==deleted == ContactManagerController2.public Contact delete(Long id)");
    }
    session.getTransaction().commit();

    System.out.println("session.getTransaction().commit();");
    return contact;
    }

    @SuppressWarnings("unchecked")
    public List<Contact> list() {
    System.out.println("Inside public List<Contact> list() ");
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    System.out.println("Inside public List<Contact> list() 1");
    session.beginTransaction();
    System.out.println("Inside public List<Contact> list() 2");
    List<Contact> contacts = null;
    System.out.println("Inside public List<Contact> list() 3");
    try {
    System.out.println("Inside public List<Contact> list()4 ");

    contacts = (List<Contact>)session.createQuery("from Contact").list();
    System.out.println("Inside public List<Contact> list() 5");

    } catch (HibernateException e) {
    System.out.println("in exception HibernateException");
    e.printStackTrace();
    session.getTransaction().rollback();
    }
    session.getTransaction().commit();
    System.out.println("Inside public List<Contact> list()==session.getTransaction().commit(); ");
    return contacts;
    }
    }
    [/code]

    Please suggest how i can achive the same.

    Thanks in Advance
    Shafquat
     
  2. jogep

    jogep New Member

    Joined:
    May 22, 2012
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    Location:
    Germany
    Home Page:
    1.) Use the new PrepareAndExecute Filter

    Code:
    [LEFT]<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>[/LEFT]
    
    2.) How looks your Action Configuration?

    3.) Do you call the action or the JSP?
     

Share This Page