Java Mvc And Hibernate

Posted by GigaPr on Stack Overflow See other posts from Stack Overflow or by GigaPr
Published on 2010-05-28T22:55:40Z Indexed on 2010/05/28 23:02 UTC
Read the original article Hit count: 271

Filed under:
|
|

Hi i am trying to learn Java, Hibernate and the MVC pattern. Following various tutorial online i managed to map my database, i have created few Main methods to test it and it works. Furthermore i have created few pages using the MVC patter and i am able to display some mock data as well in a view. the problem is i can not connect the two. this is what i have

My view Looks like this

    <%@ include file="/WEB-INF/jsp/include.jsp" %>
<html>
  <head>
      <title>Users</title>
      <%@ include file="/WEB-INF/jsp/head.jsp" %>
  </head>
  <body>
      <%@ include file="/WEB-INF/jsp/header.jsp" %>
      <img src="images/rss.png" alt="Rss Feed"/>      
      <%@ include file="/WEB-INF/jsp/menu.jsp" %>      
      <div class="ContainerIntroText">
      <img src="images/usersList.png" class="marginL150px" alt="Add New User"/>
      <br/>
      <br/>
        <div class="usersList">
            <div class="listHeaders">
                <div class="headerBox">
                    <strong>FirstName</strong>
                </div>
                <div class="headerBox">
                    <strong>LastName</strong>
                </div>
                <div class="headerBox">
                    <strong>Username</strong>
                </div>
                <div class="headerAction">
                    <strong>Edit</strong>
                </div>
                <div class="headerAction">
                    <strong>Delete</strong>
                </div>
            </div>
            <br><br>
        <c:forEach items="${users}" var="user">
            <div class="listElement">
                <c:out value="${user.firstName}"/>
            </div>
            <div class="listElement">
                <c:out value="${user.lastName}"/>
            </div>
            <div class="listElement">
                <c:out value="${user.username}"/>
            </div>
            <div class="listElementAction">
                <input type="button" name="Edit" title="Edit" value="Edit"/>
            </div>
            <div class="listElementAction">
                <input type="image" src="images/delete.png" name="image" alt="Delete" >
            </div>
            <br />            
            </c:forEach>
        </div>
      </div>

      <a id="addUser" href="addUser.htm" title="Click to add a new user">&nbsp;</a>
  </body>
</html>

My controller

public class UsersController implements Controller {

    private UserServiceImplementation userServiceImplementation;

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {        

        ModelAndView modelAndView = new ModelAndView("users");        

        List<User> users = this.userServiceImplementation.get();
        modelAndView.addObject("users", users);

    return modelAndView;

    }
    public UserServiceImplementation getUserServiceImplementation() {
        return userServiceImplementation;
    }

    public void setUserServiceImplementation(UserServiceImplementation userServiceImplementation) {
        this.userServiceImplementation = userServiceImplementation;
    }
}

My servelet definitions

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

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

  <!-- the application context definition for the springapp DispatcherServlet -->

  <bean name="/home.htm" class="com.rssFeed.mvc.HomeController"/>
  <bean name="/rssFeeds.htm" class="com.rssFeed.mvc.RssFeedsController"/>
  <bean name="/addUser.htm" class="com.rssFeed.mvc.AddUserController"/>
  <bean name="/users.htm" class="com.rssFeed.mvc.UsersController">
        <property name="userServiceImplementation" ref="userServiceImplementation"/>
  </bean>

  <bean id="userServiceImplementation" class="com.rssFeed.ServiceImplementation.UserServiceImplementation">
        <property name="users">
            <list>
                <ref bean="user1"/>
                <ref bean="user2"/>
            </list>
        </property>
    </bean>

  <bean id="user1" class="com.rssFeed.domain.User">
        <property name="firstName" value="firstName1"/>
        <property name="lastName" value="lastName1"/>
        <property name="username" value="username1"/>
        <property name="password" value="password1"/>
    </bean>

  <bean id="user2" class="com.rssFeed.domain.User">
        <property name="firstName" value="firstName2"/>
        <property name="lastName" value="lastName2"/>
        <property name="username" value="username2"/>
        <property name="password" value="password2"/>
   </bean>

   <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
       <property name="prefix" value="/WEB-INF/jsp/"></property>
       <property name="suffix" value=".jsp"></property>
   </bean>

</beans>

and finally this class to access the database

public class HibernateUserDao extends HibernateDaoSupport implements UserDao {

    public void addUser(User user) {
        getHibernateTemplate().saveOrUpdate(user);
    }

    public List<User> get() {

        User user1 = new User();
        user1.setFirstName("FirstName");
        user1.setLastName("LastName");
        user1.setUsername("Username");
        user1.setPassword("Password");

        List<User> users = new LinkedList<User>();
        users.add(user1);
    return users;
    }

    public User get(int id) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public User get(String username) {
        return null;
    }
}

the database connection occurs in this file

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

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
        <property name="url" value="jdbc:hsqldb:hsql://localhost/rss"/>
        <property name="username" value="sa"/>
        <property name="password" value=""/>
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
        <property name="dataSource" ref="dataSource" />
        <property name="mappingResources">
            <list>
                <value>com/rssFeed/domain/User.hbm.xml</value>
            </list>
        </property>
        <property name="hibernateProperties" >
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
            </props>
        </property>
    </bean>

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <bean id="userDao" class="com.rssFeed.dao.hibernate.HibernateUserDao">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>    

</beans>

Could you help me to solve this problem i spent the last 4 days and nights on this issue without any success

Thanks

© Stack Overflow or respective owner

Related posts about java

Related posts about nhibernate