Sitemap    
  Home Food Photographs IT Parenting Resources Learning  
JAVA
J2SE
JSP
Servlet
Spring
Adding logging to the application
Get Started 1
Get Started 2
Get Started 3
Get Started 4
Simple file upload using Spring 1
Simple file upload using Spring 2
Simple file upload using Spring 3
Simple file upload using Spring 4
Spring3 And Hibernate 1
Spring3 And Hibernate 2
Spring3 And Hibernate 3
Spring3 And Hibernate 4
Spring3 Getting Started 1
Spring3 Getting Started 2
Spring3 Getting Started 3
Spring3 Getting Started 4
Spring3 Simple file upload 1
Spring3 Simple file upload 2
Spring3 Simple file upload 3
Spring3 Simple file upload 4
Struts2
Webservice
Spring3 And Hibernate 3

6: /classes/com/company/springapp/Employee
package com.company.springapp;

import java.io.Serializable;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

public class Employee implements Serializable
{
  private Long empId;
  private String firstName;
  private String lastName;
  private Date dateofBirth;
  private Date hireDate;
  public Date getDateofBirth() {
    return dateofBirth;
  }
  public void setDateofBirth(Date dateofBirth) {
    this.dateofBirth = dateofBirth;
  }
  public Long getEmpId() {
    return empId;
  }
  public void setEmpId(Long empId) {
    this.empId = empId;
  }
  public String getFirstName() {
    return firstName;
  }
  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }
  public Date getHireDate() {
    return hireDate;
  }
  public void setHireDate(Date hireDate) {
    this.hireDate = hireDate;
  }
  public String getLastName() {
    return lastName;
  }
  public void setLastName(String lastName) {
    this.lastName = lastName;
  }
}

Note direct use of java.util.Date in data transfer object. This data conversion from String to Date shall be achieved using @InitBinder in Controller

7: /classes/com/company/springapp/EmployeeController
package com.company.springapp;

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.List;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping(value="/employee")
public class EmployeeController
{
  private static final Logger logger = Logger.getLogger(EmployeeController.class);
  private EmployeeDao employeeDao;

  public void setEmployeeDao(EmployeeDao employeeDao) {
	this.employeeDao = employeeDao;
  }

  @InitBinder
  public void initBinder(WebDataBinder binder)
  {
    logger.info("start");
	DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
	dateFormat.setLenient(false);
	binder.registerCustomEditor(Date.class, new CustomDateEditor(
				dateFormat, true));
  }

  @RequestMapping(value="/list")
  protected ModelAndView list(@ModelAttribute("command") Employee command)
      throws Exception
  {
	logger.info("start");
	ModelAndView mav = new ModelAndView();
    try
    {
    	mav.setViewName("employee_maintenance");
    	List employeeList = employeeDao.list();
    	mav.addObject("employeeList", employeeList);
    }
    catch (Exception e)
    {
        logger.error(e,e);
    }
    return mav;
  }

  @RequestMapping(value="/delete")
  protected ModelAndView delete(@ModelAttribute("command") Employee command)
      throws Exception
  {
	logger.info("start::"+ BeanUtils.describe(command));
	ModelAndView mav = new ModelAndView();
    try
    {
    	mav.setViewName("employee_maintenance");
    	employeeDao.delete(command);
    	List employeeList = employeeDao.list();
    	mav.addObject("employeeList", employeeList);
    }
    catch (Exception e)
    {
        logger.error(e,e);
    }
    return mav;
  }

  @RequestMapping(value="/insert")
  protected ModelAndView insert(@ModelAttribute("command") Employee command)
      throws Exception
  {
	logger.info("start::"+ BeanUtils.describe(command));
	ModelAndView mav = new ModelAndView();
    try
    {
    	mav.setViewName("employee_maintenance");
    	employeeDao.insert(command);
    	List employeeList = employeeDao.list();
    	mav.addObject("employeeList", employeeList);
    }
    catch (Exception e)
    {
        logger.error(e,e);
    }
    return mav;
  }

  @RequestMapping(value="/update")
  protected ModelAndView update(@ModelAttribute("command") Employee command)
      throws Exception
  {
	logger.info("start::"+ BeanUtils.describe(command));
	ModelAndView mav = new ModelAndView();
    try
    {
    	mav.setViewName("employee_maintenance");
    	employeeDao.update(command);
    	List employeeList = employeeDao.list();
    	mav.addObject("employeeList", employeeList);
    }
    catch (Exception e)
    {
      logger.error(e,e);
    }
    return mav;
  }
}

see @Controller, @RequestMapping(value="/employee"), @RequestMapping(value="/list"), @RequestMapping(value="/insert")

8: /classes/com/company/springapp/EmployeeDao
package com.company.springapp;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;

public class EmployeeDao
{
  private HibernateTemplate hbrnTmplt;
  public void setSessionFactory(SessionFactory sessionFactory) {
    this.hbrnTmplt = new HibernateTemplate(sessionFactory);
  }

  public List list() {
    List list = hbrnTmplt.find("from Employee");
    return list;
  }

  public void insert(Employee newEmployee) {
    hbrnTmplt.save(newEmployee);
  }

  public void update(Employee employee) {
    hbrnTmplt.update(employee);
  }

  public void delete(Employee employee) {
    hbrnTmplt.delete(employee);
  }
}


9: /WEB-INF/jsp/employee_maintenance.jsp
<%@ page import="com.company.springapp.Employee"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<jsp:useBean id="employeeList" class="java.util.ArrayList"
  scope="request" />
<html>
<head>
<script>
function submitForm(insUpdDel,rownum)
{
  if(insUpdDel == 'insert')
  {
    document.frm.firstName.value =  document.getElementById('firstNameIsrt').value;
    document.frm.lastName.value =  document.getElementById('lastNameIsrt').value;
    document.frm.dateofBirth.value =  document.getElementById('dateofBirthIsrt').value;
    document.frm.hireDate.value =  document.getElementById('hireDateIsrt').value;
  }
  else if(insUpdDel == 'delete')
  {
    document.frm.empId.value =  document.getElementById('empId'+rownum).value;
  }
  else if(insUpdDel == 'update')
  {
    document.frm.empId.value =  document.getElementById('empId'+rownum).value;
    document.frm.firstName.value =  document.getElementById('firstName'+rownum).value;
    document.frm.lastName.value =  document.getElementById('lastName'+rownum).value;
    document.frm.dateofBirth.value =  document.getElementById('dateofBirth'+rownum).value;
    document.frm.hireDate.value =  document.getElementById('hireDate'+rownum).value;
  }
  document.frm.action = "/Spring3/employee/"+insUpdDel;
  document.frm.method = "post";
  document.frm.submit();
}
</script>
</head>
<body>
<form name='frm' >
<table bgcolor="#EFEFEF" border="1">
  <tr>
    <td><Strong>Employee Id</Strong></td>
    <td><Strong>First Name</Strong></td>
    <td><Strong>Last Name</Strong></td>
    <td><Strong>Date of Birth</Strong></td>
    <td><Strong>Hire Date</Strong></td>
    <td><Strong> </Strong></td>
    <td><Strong> </Strong></td>
  </tr>
  <c:forEach var="employee" items="${employeeList}" varStatus="counter">
    <tr>
      <td><input type='text' name='empId${counter.index}'
        value='${employee.empId}' size='20' readonly /></td>
      <td><input type='text' name='firstName${counter.index}'
        value='${employee.firstName}' size='20' /></td>
      <td><input type='text' name='lastName${counter.index}'
        value='${employee.lastName}' size='20' /></td>
      <td><input type='text' name='dateofBirth${counter.index}'
        value='${employee.dateofBirth}' size='20' /></td>
      <td><input type='text' name='hireDate${counter.index}'
        value='${employee.hireDate}' size='20' /></td>
      <td><input type='button' value='Delete'  onclick="submitForm('delete',${counter.index})" /></td>
      <td><input type='button' value='Update'  onclick="submitForm('update',${counter.index})" /></td>
    </tr>
  </c:forEach>
  <tr>
    <td> </td>
    <td><input type='text' name='firstNameIsrt' size='20' /></td>
    <td><input type='text' name='lastNameIsrt' size='20' /></td>
    <td><input type='text' name='dateofBirthIsrt' size='20' /></td>
    <td><input type='text' name='hireDateIsrt' size='20' /></td>
    <td><input type='button' value='Insert' onclick="submitForm('insert')" /></td>
    <td> </td>
  </tr>
</table>
<input type='hidden' name='empId'/>
<input type='hidden' name='firstName'/>
<input type='hidden' name='lastName'/>
<input type='hidden' name='dateofBirth'/>
<input type='hidden' name='hireDate'/>
</form>
</body>
</html>

Note <c:forEach var="employee" items="${employeeList}" varStatus="counter">


ADD TO DEL.ICIO.US ADD TO DIGG ADD TO FURL ADD TO REDDIT ADD TO STUMBLEUPON ADD TO TECHNORATI FAVORITES ADD TO SQUIDOO ADD TO YAHOO MYWEB ADD TO ASK ADD TO GOOGLE
Post your comments:
Your Name: 
Security check:
Your Comment: 1500 chars
Latest
How to loop arraylist JAVA6 Syntax
How to iterrate through ArrayList and display multiple rows using for loop JAVA6 syntax..
Java JSP  2010-Oct-12
How to loop arraylist
How to iterrate through ArrayList and display multiple rows using for loop, JSTL tags..
Java JSP  2010-Oct-12
Consumer using JAX WS Dispatch API and DOM parser 1
Access/Consume Webservice using Servlet, JAX-WS Dispatch API dynamic client and parsing SOAP response using DOM parser...
Java Webservice  2010-Sep-20
Simple Java first CXF Webservice 4
Building Simple Java first CXF webservice using CXFServlet, Spring, jaxws:endpoint, @WebService, @SOAPBinding, @WebResult
Java Webservice  2010-Sep-19
Simple Java first CXF Webservice 3
Building Simple Java first CXF webservice using CXFServlet, Spring, jaxws:endpoint, @WebService, @SOAPBinding, @WebResult
Java Webservice  2010-Sep-18
Simple Java first CXF Webservice 1
Building Simple Java first CXF webservice using CXFServlet, Spring, jaxws:endpoint, @WebService, @SOAPBinding, @WebResult
Java Webservice  2010-Sep-18
Simple Java first CXF Webservice 2
Building Simple Java first CXF webservice using CXFServlet, Spring, jaxws:endpoint, @WebService, @SOAPBinding, @WebResult
Java Webservice  2010-Sep-18
Encoding special characters in userinput or on server
Encoding can be done either in Javascript or JAVA encodeURIComponent, escape, java.net.URLEncoder..
Java JSP  2010-Aug-09
Jstl fmt tag i18n formatdate formatcurrency
fmt:setBundle, native2ascii.exe, fmt:message, fmt:setLocale, fmt:formatDate, fmt:formatNumber type=currency..
Java JSP  2010-Aug-05
How to read and write a file
How to read and write a file java.io.BufferedReader,java.io.FileReader, InputStreamReader ...
Java J2SE  2010-Aug-04
jQuery validate form using ajax 2
How to validate/submit form using ajax and jQuery input#, ($.ajax)..
Javascript  2010-Jul-23
jQuery validate form using ajax 1
How to validate/submit form using ajax and jQuery ($.ajax)..
Javascript  2010-Jul-23
How to create datasource in RAD Websphere
Create JDBC provider, datasource and JAAS security setup, JDBC connection URLs
Servers Websphere  2010-Jul-08
Get Started 4
Struts2 framework structure, how various components fit together
Java Struts2  2010-Jul-07
How to populate a form when JSP is called first time
This is achieved throught setting bean in request, using frameworks like Struts2, Spring3..
Java JSP  2010-Jul-07
Spring3 And Hibernate 4
Spring3 and Hibernate 3.5.3 working together @Controller, @RequestMapping, @InitBinder, HibernateTransactionManager, LocalSessionFactoryBean, HibernateTemplate
Java Spring  2010-Jul-07