CREATE TABLE `survey` ( `SURVEY_ID` int(11) NOT NULL AUTO_INCREMENT, `END_DATE` datetime DEFAULT NULL, `START_DATE` datetime DEFAULT NULL, `STATUS` varchar(255) DEFAULT NULL, `SURVEY_NAME` varchar(255) DEFAULT NULL, PRIMARY KEY (`SURVEY_ID`) )Question Table
CREATE TABLE `questions` ( `QUESTION_ID` int(11) NOT NULL AUTO_INCREMENT, `QUESTION` varchar(255) DEFAULT NULL, `SURVEY_ID` int(11) DEFAULT NULL, PRIMARY KEY (`QUESTION_ID`), KEY `FK95C5414DD76DB9F3` (`SURVEY_ID`), CONSTRAINT `FK95C5414DD76DB9F3` FOREIGN KEY (`SURVEY_ID`) REFERENCES `survey` (`SURVEY_ID`) )Answer Table
CREATE TABLE `answer` ( `Answer_ID` int(11) NOT NULL AUTO_INCREMENT, `Answer` varchar(255) DEFAULT NULL, `Question_ID` int(11) DEFAULT NULL, PRIMARY KEY (`Answer_ID`), KEY `FKABCA3FBEE2FF2433` (`Question_ID`), CONSTRAINT `FKABCA3FBEE2FF2433` FOREIGN KEY (`Question_ID`) REFERENCES `questions` (`QUESTION_ID`) )Step 2: Create a config.properties for database configuration information in the resources folder under src folder in the created project.
# database properties #app.jdbc.driverClassName=oracle.jdbc.driver.OracleDriver #app.jdbc.url=jdbc:oracle:thin:@192.168.2.104:1521:orcl #app.jdbc.username=hyundaisrv #app.jdbc.password=hyundaisrv #hibernate properties #hibernate.config=/WEB-INF/hibernate.cfg.xml ################### JDBC Configuration ########################## #jdbc.driverClassName=oracle.jdbc.driver.OracleDriver jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/DOJDB jdbc.username=root jdbc.password=root #jdbc.driverClassName=org.hsqldb.jdbcDriver #jdbc.url=jdbc:hsqldb:file:db/SivaLabsDB;shutdown=true #jdbc.username=sa #jdbc.password= ################### Hibernate Configuration ######################### #hibernate.dialect=org.hibernate.dialect.OracleDialect hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.show_sql=true hibernate.hbm2ddl.auto=update hibernate.generate_statistics=trueStep 3: Create a Dynamic Web Project with a name "Survey Status" and create packages com.dineshonjava.survey.bean, com.dineshonjava.survey.Controller, com.dineshonjava.survey.dao, com.dineshonjava.survey.service, com.dineshonjava.survey.utils under the src folder in the created project.


package com.dineshonjava.survey.bean;
/**
* @author Dinesh Rajput
*
*/
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.SequenceGenerator;
import javax.persistence.Transient;
import org.apache.commons.lang.builder.ToStringBuilder;
@Entity
@Table(name="Survey")
public class Survey
{
@Id
@SequenceGenerator(name = "seq_contacts", sequenceName = "seq_contacts")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "seq_contacts")
private int SURVEY_ID;
@Column
private String SURVEY_NAME;
@Column
private Date START_DATE;
@Column
private Date END_DATE;
@Column
private String STATUS;
@Transient
private List<String> QUESTION;
@Transient
private List<String> Answer;
public Survey()
{}
public Survey(int SURVEY_ID, String SURVEY_NAME, Date START_DATE, Date END_DATE, String STATUS)
{
super();
this.SURVEY_ID = SURVEY_ID;
this.SURVEY_NAME = SURVEY_NAME;
this.START_DATE = START_DATE;
this.END_DATE = END_DATE;
this.STATUS = STATUS;
}
@Override
public String toString()
{
return ToStringBuilder.reflectionToString(this);
}
public int getSURVEY_ID() {
return SURVEY_ID;
}
public void setSURVEY_ID(int sURVEY_ID) {
SURVEY_ID = sURVEY_ID;
}
public String getSURVEY_NAME() {
return SURVEY_NAME;
}
public void setSURVEY_NAME(String sURVEY_NAME) {
SURVEY_NAME = sURVEY_NAME;
}
public Date getSTART_DATE() {
return START_DATE;
}
public void setSTART_DATE(Date sTART_DATE) {
START_DATE = sTART_DATE;
}
public Date getEND_DATE() {
return END_DATE;
}
public void setEND_DATE(Date eND_DATE) {
END_DATE = eND_DATE;
}
public String getSTATUS() {
return STATUS;
}
public void setSTATUS(String sTATUS) {
STATUS = sTATUS;
}
public List<String> getQUESTION() {
return QUESTION;
}
public void setQUESTION(List<String> qUESTION) {
QUESTION = qUESTION;
}
public List<String> getAnswer() {
return Answer;
}
public void setAnswer(List<String> answer) {
Answer = answer;
}
}
package com.dineshonjava.survey.bean;
/**
* @author Dinesh Rajput
*
*/
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.apache.commons.lang.builder.ToStringBuilder;
@Entity
@Table(name="questions")
public class Question {
@Id
@SequenceGenerator(name = "seq_contacts", sequenceName = "seq_contacts")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "seq_contacts")
private int QUESTION_ID;
@Column private String QUESTION;
@Transient
private List<String> answers;
@ManyToOne
@JoinColumn(name ="SURVEY_ID")
private Survey survey;
public Question()
{
}
public Question(int QUESTION_ID, String QUESTION, Survey survey )
{
super();
this.QUESTION_ID = QUESTION_ID;
this.QUESTION = QUESTION;
this.survey = survey;
}
@Override
public String toString()
{
return ToStringBuilder.reflectionToString(this);
}
public int getQUESTION_ID() {
return QUESTION_ID;
}
public void setQUESTION_ID(int QUESTION_ID) {
this.QUESTION_ID = QUESTION_ID;
}
public String getQUESTION() {
return QUESTION;
}
public void setQUESTION(String QUESTION) {
this.QUESTION = QUESTION;
}
public Survey getSurvey() {
return survey;
}
public void setSurvey(Survey survey) {
this.survey = survey;
}
public List<String> getAnswers() {
return answers;
}
public void setAnswers(List<String> answers) {
this.answers = answers;
}
}
The above class show the Many to One relationship between Survey table and Question table.package com.dineshonjava.survey.bean;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
/**
* @author Dinesh Rajput
*Question_ID | Answer_ID | Answer
*/
@Entity
@Table(name="answer")
public class Answer {
@Id
@SequenceGenerator(name = "seq_contacts", sequenceName = "seq_contacts")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "seq_contacts")
private int Answer_ID;
@Column
private String Answer;
@ManyToOne
@JoinColumn(name ="Question_ID")
private Question question;
public Answer(){
}
public Answer(int Answer_ID, String Answer, Question question )
{
super();
this.Answer_ID = Answer_ID;
this.Answer = Answer;
this.question = question;
}
public int getAnswer_ID() {
return Answer_ID;
}
public void setAnswer_ID(int answer_ID) {
Answer_ID = answer_ID;
}
public String getAnswer() {
return Answer;
}
public void setAnswer(String answer) {
Answer = answer;
}
public Question getQuestion() {
return question;
}
public void setQuestion(Question question) {
this.question = question;
}
}
The above class show the Many to One relationship between Question table and Answer table.package com.dineshonjava.survey.dao;
import java.util.List;
import com.dineshonjava.survey.bean.Survey;
public interface SurveyDAO {
Survey getBySURVEY_ID(int SURVEY_ID);
List<Survey> getAllSurvey();
int save(Survey survey);
void update(Survey survey);
void view(Survey survey);
void delete(int SURVEY_ID);
}
SurveyDaoImpl.javapackage com.dineshonjava.survey.dao;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.dineshonjava.survey.bean.Survey;
/**
* @author Dinesh Rajput
*
*/
@Repository
@Transactional
public class SurveyDAOImpl implements SurveyDAO {
@Autowired
private SessionFactory sessionFactory;
public Survey getBySURVEY_ID(int SURVEY_ID)
{
return (Survey) sessionFactory.getCurrentSession().get(Survey.class, SURVEY_ID);
}
@SuppressWarnings("unchecked")
public List<Survey> getAllSurvey()
{
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Survey.class);
return criteria.list();
}
public int save(Survey survey)
{
return (Integer) sessionFactory.getCurrentSession().save(survey);
}
public void update(Survey survey)
{
sessionFactory.getCurrentSession().merge(survey);
}
public void view(Survey survey)
{
sessionFactory.getCurrentSession().merge(survey);
}
public void delete(int SURVEY_ID)
{
Survey s = getBySURVEY_ID(SURVEY_ID);
sessionFactory.getCurrentSession().delete(s);
}
}
QuestionDao.javapackage com.dineshonjava.survey.dao;
import java.util.List;
import com.dineshonjava.survey.bean.Question;
/**
* @author Dinesh Rajput
*
*/
public interface QuestionDAO {
Question getByQuestion_ID(int Question_ID);
List<Question> getAllQuestion();
int save(Question question);
void update(Question question);
void view(Question question);
void delete(int Question_ID);
}
QuestionDaoImpl.javapackage com.dineshonjava.survey.dao;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.dineshonjava.survey.bean.Question;
/**
* @author Dinesh Rajput
*
*/
@Repository
@Transactional
public class QuestionDAOImpl implements QuestionDAO {
@Autowired
private SessionFactory sessionFactory;
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.QuestionDAO#getByQuestion_ID(int)
*/
@Override
public Question getByQuestion_ID(int Question_ID) {
return (Question) sessionFactory.getCurrentSession().get(Question.class, Question_ID);
}
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.QuestionDAO#getAllQuestion()
*/
@Override
public List<Question> getAllQuestion() {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Question.class);
return criteria.list();
}
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.QuestionDAO#save(com.dineshonjava.survey.bean.Question)
*/
@Override
public int save(Question question) {
return (Integer) sessionFactory.getCurrentSession().save(question);
}
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.QuestionDAO#update(com.dineshonjava.survey.bean.Question)
*/
@Override
public void update(Question question) {
sessionFactory.getCurrentSession().merge(question);
}
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.QuestionDAO#view(com.dineshonjava.survey.bean.Question)
*/
@Override
public void view(Question question) {
sessionFactory.getCurrentSession().merge(question);
}
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.QuestionDAO#delete(int)
*/
@Override
public void delete(int Question_ID) {
Question s = getByQuestion_ID(Question_ID);
sessionFactory.getCurrentSession().delete(s);
}
}
AnswerDao.javapackage com.dineshonjava.survey.dao;
import java.util.List;
import com.dineshonjava.survey.bean.Answer;
/**
* @author Dinesh Rajput
*
*/
public interface AnswerDAO {
Answer getByAnswer_ID(int Answer_ID);
List<Answer> getAllAnswer();
int save(Answer answer);
void update(Answer answer);
void view(Answer answer);
void delete(int Answer_ID);
}
AnswerDaoImpl.javapackage com.dineshonjava.survey.dao;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.dineshonjava.survey.bean.Answer;
/**
* @author Dinesh Rajput
*
*/
@Repository
@Transactional
public class AnswerDAOImpl implements AnswerDAO {
@Autowired
private SessionFactory sessionFactory;
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.AnswerDAO#getByAnswer_ID(int)
*/
@Override
public Answer getByAnswer_ID(int Answer_ID) {
return (Answer) sessionFactory.getCurrentSession().get(Answer.class, Answer_ID);
}
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.AnswerDAO#getAllAnswer()
*/
@Override
public List<Answer> getAllAnswer() {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Answer.class);
return criteria.list();
}
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.AnswerDAO#save(com.dineshonjava.survey.bean.Answer)
*/
@Override
public int save(Answer answer) {
return (Integer) sessionFactory.getCurrentSession().save(answer);
}
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.AnswerDAO#update(com.dineshonjava.survey.bean.Answer)
*/
@Override
public void update(Answer answer) {
sessionFactory.getCurrentSession().merge(answer);
}
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.AnswerDAO#view(com.dineshonjava.survey.bean.Answer)
*/
@Override
public void view(Answer answer) {
sessionFactory.getCurrentSession().merge(answer);
}
/* (non-Javadoc)
* @see com.dineshonjava.survey.dao.AnswerDAO#delete(int)
*/
@Override
public void delete(int Answer_ID) {
Answer s = getByAnswer_ID(Answer_ID);
sessionFactory.getCurrentSession().delete(s);
}
}
SurveyController.javapackage com.dineshonjava.survey.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
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.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.support.SessionStatus;
import org.springframework.web.servlet.ModelAndView;
import com.dineshonjava.survey.bean.Answer;
import com.dineshonjava.survey.bean.Question;
import com.dineshonjava.survey.bean.Survey;
import com.dineshonjava.survey.dao.AnswerDAO;
import com.dineshonjava.survey.dao.QuestionDAO;
import com.dineshonjava.survey.dao.SurveyDAO;
import com.dineshonjava.survey.utils.SurveyFormValidator;
/**
* @author Dinesh Rajput
*
*/
@Controller
public class SurveyController {
@Autowired
private SurveyDAO surveyDAO;
@Autowired
private AnswerDAO answerDAO;
@Autowired
private QuestionDAO questionDAO;
@Autowired
private SurveyFormValidator validator;
@RequestMapping("/home")
public String home()
{
return "home";
}
@InitBinder
public void initBinder(WebDataBinder binder)
{
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
@RequestMapping("/viewAllSurvey")
public ModelAndView getAllSurvey()
{
ModelAndView mav = new ModelAndView("showSurvey");
List<Survey> survey = surveyDAO.getAllSurvey();
mav.addObject("SEARCH_SURVEY_RESULTS_KEY", survey);
return mav;
}
@RequestMapping(value="/saveSurvey", method=RequestMethod.GET)
public ModelAndView newuserForm()
{
ModelAndView mav = new ModelAndView("newSurvey");
Survey survey = new Survey();
mav.getModelMap().put("newSurvey", survey);
return mav;
}
@RequestMapping(value="/saveSurvey", method=RequestMethod.POST)
public String create(@ModelAttribute("newSurvey")Survey survey, BindingResult result, SessionStatus status)
{
validator.validate(survey, result);
if (result.hasErrors())
{
return "newSurvey";
}
int surveyId = surveyDAO.save(survey);
List<String> questions = survey.getQUESTION();
Question ques = null;
if(questions != null){
for(String question : questions){
ques = new Question();
ques.setQUESTION(question);
ques.setSurvey(survey);
int quesId = questionDAO.save(ques);
List<String> answers = survey.getAnswer();
Answer answer = null;
if(answers != null){
for(String ans : answers){
answer = new Answer();
answer.setAnswer(ans);
answer.setQuestion(ques);
answerDAO.save(answer);
}
}
}
}
status.setComplete();
return "redirect:viewAllSurvey.do";
}
@RequestMapping(value="/updateSurvey", method=RequestMethod.GET)
public ModelAndView edit(@RequestParam("SURVEY_ID")Integer SURVEY_ID)
{
ModelAndView mav = new ModelAndView("editSurvey");
Survey survey = surveyDAO.getBySURVEY_ID(SURVEY_ID);
mav.addObject("editSurvey", survey);
return mav;
}
@RequestMapping(value="/updateSurvey", method=RequestMethod.POST)
public String update(@ModelAttribute("editSurvey") Survey survey, BindingResult result, SessionStatus status)
{
validator.validate(survey, result);
if (result.hasErrors()) {
return "editSurvey";
}
surveyDAO.update(survey);
status.setComplete();
return "redirect:viewAllSurvey.do";
}
@RequestMapping(value="/viewSurvey", method=RequestMethod.GET)
public ModelAndView view(@RequestParam("SURVEY_ID")Integer SURVEY_ID)
{
ModelAndView mav = new ModelAndView("viewSurvey");
Survey survey = surveyDAO.getBySURVEY_ID(SURVEY_ID);
mav.addObject("viewSurvey", survey);
return mav;
}
}
package com.dineshonjava.survey.utils;
import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
import com.dineshonjava.survey.bean.Survey;
/**
* @author Dinesh Rajput
*
*/
@Component("surveyFormValidator")
public class SurveyFormValidator implements Validator
{
private static final String START_DATE = null;
@SuppressWarnings("unchecked")
@Override
public boolean supports(Class clazz)
{
return Survey.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object model, Errors errors)
{
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "SURVEY_NAME","required.SURVEY_NAME", "survey name is required.");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "START_DATE","required.START_DATE", "Start Date is required.");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "END_DATE","required.END_DATE", "End Date is required.");
//ValidationUtils.rejectIfEmptyOrWhitespace(errors, "QUESTION","required.QUESTION", "can not be blank.");
/*ValidationUtils.rejectIfEmpty(errors, "START_DATE","required.SURVEY_NAME", "Enter date");*/
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Survey Status</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>doj</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>doj</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/views/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
Spring Web configuration file applicatonContext.xml<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:annotation-config />
<context:component-scan base-package="com.dineshonjava.survey" />
<mvc:annotation-driven />
<context:property-placeholder location="classpath:config.properties" />
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" p:basename="Messages"/>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory" />
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
</props>
</property>
<property name="annotatedClasses">
<list>
<value>com.dineshonjava.survey.bean.Survey</value>
<value>com.dineshonjava.survey.bean.Question</value>
<value>com.dineshonjava.survey.bean.Answer</value>
</list>
</property>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.url}"
p:username="${jdbc.username}"
p:password="${jdbc.password}"/>
</beans>
viewSurvey.jsp<%@include file="taglib_includes.jsp" %>
<html>
<head>
<script type="text/javascript" src="js/survey.js"></script>
<title><spring:message code="App.Title"></spring:message> </title>
</head>
<body style="font-family: Arial; font-size:smaller;">
<table bgcolor="lightblue" width="750" height="500" align="center" style="border-collapse: collapse;" border="1" bordercolor="#006699" >
<tr>
<td align="center"><h3>survey detail</h3></td>
</tr>
<tr valign="top" align="center">
<td align="center">
<form:form action="viewSurvey.do" method="post" commandName="viewSurvey">
<table width="500" style="border-collapse: collapse;" border="0" bordercolor="#006699" cellspacing="2" cellpadding="2">
<tr>
<td width="100" align="right">SURVEY_ID</td>
<td width="150">
<form:input path="SURVEY_ID" readonly="true"/></td>
<td align="left">
<form:errors path="SURVEY_ID" cssStyle="color:red"></form:errors> </td>
</tr>
<tr>
<td width="100" align="right">SURVEY_NAME</td>
<td>
<form:input path="SURVEY_NAME" readonly="true"/></td>
<td align="left">
<form:errors path="SURVEY_NAME" cssStyle="color:red"></form:errors>
</td>
</tr>
<tr>
<td width="100" align="right">START_DATE</td>
<td><form:input path="START_DATE" readonly="true"/></td>
<td align="left"><form:errors path="START_DATE" cssStyle="color:red"></form:errors> </td>
</tr>
<tr>
<td width="100" align="right">END_DATE</td>
<td><form:input path="END_DATE" readonly="true"/></td>
<td align="left"><form:errors path="END_DATE" cssStyle="color:red"></form:errors> </td>
</tr>
<%-- <tr>
<td width="100" align="right">STATUS</td>
<td>
<form:select path="STATUS" readonly="true">
<form:option value="C" label="Completed"/>
<form:option value="NC" label="Incomplete"/>
</form:select>
</td>
<td>
</td>
</tr> --%>
<tr valign="bottom">
<td colspan="1" align="center">
<input type="button" value="Back" onclick="javascript:go('viewAllSurvey.do');">
</td>
</tr>
</table>
</form:form>
</td>
</tr>
</table>
</body>
</html>
showSurvey.jsp<%@include file="taglib_includes.jsp"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title><spring:message code="App.Title"></spring:message></title>
<script type="text/javascript" src="js/survey.js"></script>
</head>
<body style="font-family: Arial; font-size: smaller;">
<h3><center>Survey page Details</center></h3>
<center>
<table style="border-collapse: collapse;" border="1"
bordercolor="#006699" width="500">
<tr bgcolor="lightblue">
<th>Survey Id</th>
<th>Survey Name</th>
<th>Survey Start Date</th>
<th>Survey End date</th>
<th>Status</th>
<th>Action</th>
<th></th>
</tr>
<c:if test="${empty SEARCH_SURVEY_RESULTS_KEY}">
<tr>
<td colspan="4">No Results found</td>
</tr>
</c:if>
<c:if test="${! empty SEARCH_SURVEY_RESULTS_KEY}">
<c:forEach var="survey" items="${SEARCH_SURVEY_RESULTS_KEY}">
<tr>
<td><c:out value="${survey.SURVEY_ID}"></c:out></td>
<td><c:out value="${survey.SURVEY_NAME}"></c:out></td>
<td><fmt:formatDate value="${survey.START_DATE}" pattern="dd-MM-yyyy" /></td>
<td><fmt:formatDate value="${survey.END_DATE}" pattern="dd-MM-yyyy" /></td>
<%-- <td><c:out value="${survey.START_DATE}"></c:out></td>
<td><c:out value="${survey.END_DATE}"></c:out></td> --%>
<td><c:out value="${survey.STATUS}"></c:out></td>
<td> <a href="updateSurvey.do?SURVEY_ID=${survey.SURVEY_ID}">Edit</a>
<a href="viewSurvey.do?SURVEY_ID=${survey.SURVEY_ID}">View</a>
</td>
<td>
<a href="saveQuestion.do?SURVEY_ID=${survey.SURVEY_ID}">Question</a>
</td>
</tr>
</c:forEach>
</c:if>
</table>
</center>
<br><br><br>
<input type="button" value="add new survey" onclick="javascript:go('saveSurvey.do');" />
</body>
</html>
newSurvey.jsp<%@include file="taglib_includes.jsp" %>
<html>
<head>
<script type="text/javascript" src="js/survey.js"></script>
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/datetimepicker.js"></script>
<title><spring:message code="App.Title"></spring:message> </title>
</head>
<body style="font-family: Arial; font-size:smaller;">
<table bgcolor="#F1D4B8" width="1000" height="600" align="center" style="border-collapse: collapse;" border="1" bordercolor="#006699" >
<tr>
<td align="center"><h3>Adding new Survey</h3></td>
</tr>
<tr valign="top" align="center">
<td align="center">
<form:form action="saveSurvey.do" method="post" commandName="newSurvey">
<table width="700" style="border-collapse: collapse;" border="0" bordercolor="#006699" cellspacing="2" cellpadding="2">
<tr>
<td width="50" align="right">SURVEY_NAME</td>
<td width="50">
<form:input path="SURVEY_NAME"/></td>
<td align="left">
<form:errors path="SURVEY_NAME" cssStyle="color:red"></form:errors>
</td>
</tr>
<tr>
<td width="75" align="right">START_DATE</td>
<td><form:input path="START_DATE" id="demo1" type="text" size="25"/><a href="javascript:NewCal('demo1','ddmmyyyy')"><img src="image/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a></td>
<td align="left"><form:errors path="START_DATE" cssStyle="color:red"></form:errors> </td>
</tr>
<tr>
<td width="50" align="right">END_DATE</td>
<td><form:input path="END_DATE" id="demo2" type="text" size="25"/><a href="javascript:NewCal('demo2','ddmmyyyy')"><img src="image/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a></td>
<td align="left"><form:errors path="END_DATE" cssStyle="color:red"></form:errors> </td>
</tr>
<tr>
<td width="50" align="right">STATUS</td>
<td>
<form:select path="STATUS">
<form:option value="Completed" label="Completed"/>
<form:option value="Incomplete" label="Incomplete"/>
</form:select>
</td>
</tr>
<table width="700" style="border-collapse: collapse;" border="0" bordercolor="#006699" cellspacing="2" cellpadding="2">
<tr>
<td>
<div id='TextBoxesGroup'>
<div id="TextBoxDiv1">
Question #1 :
<form:textarea cols="29" rows="3" path="QUESTION" />
<br><br>
Answer #1 :
<form:input path="Answer" id='textbox1' size="50"/>
<br><br>
Answer #2 :
<form:input path="Answer" id='textbox2' size="50"/>
<br><br>
Answer #3 :
<form:input path="Answer" id='textbox3' size="50"/>
<br><br>
Answer #4 :
<form:input path="Answer" id='textbox4' size="50"/>
</div></div>
</tr>
<tr><td colspan="5" align=""><br>
<input type='button' value='Add Question' id='addButton'>
<input type='button' value='Remove Question' id='removeButton'></td></tr>
<tr>
<td colspan="3" align="center">
<input type="submit" name="" value="Save">
<input type="reset" name="" value="Reset">
<input type="button" value="Back" onclick="javascript:go('viewAllSurvey.do');">
</td>
</tr>
</table>
</form:form>
</td>
</tr>
</table>
</body>
</html>
editSurvey.jsp<%@include file="taglib_includes.jsp" %>
<html>
<head>
<script type="text/javascript" src="js/survey.js"></script>
<script type="text/javascript" src="js/datetimepicker.js"></script>
<title><spring:message code="App.Title"></spring:message> </title>
</head>
<body style="font-family: Arial; font-size:smaller;">
<table bgcolor="lightblue" width="750" height="500" align="center" style="border-collapse: collapse;" border="1" bordercolor="#006699" >
<tr>
<td align="center"><h3>Edit survey detail</h3></td>
</tr>
<tr valign="top" align="center">
<td align="center">
<form:form action="updateSurvey.do" method="post" commandName="editSurvey">
<table width="500" style="border-collapse: collapse;" border="0" bordercolor="#006699" cellspacing="2" cellpadding="2">
<tr>
<td width="100" align="right">SURVEY_ID</td>
<td width="150">
<form:input path="SURVEY_ID" readonly="true"/></td>
<td align="left">
<form:errors path="SURVEY_ID" cssStyle="color:red"></form:errors> </td>
</tr>
<tr>
<td width="100" align="right">SURVEY_NAME</td>
<td>
<form:input path="SURVEY_NAME"/></td>
<td align="left">
<form:errors path="SURVEY_NAME" cssStyle="color:red"></form:errors>
</td>
</tr>
<tr>
<td width="100" align="right">START_DATE</td>
<td><form:input path="START_DATE" id="demo1" type="text" size="25"/><a href="javascript:NewCal('demo1','ddmmyyyy')"><img src="image/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a></td>
<%-- <td><form:input path="START_DATE"/></td>
--%>
<td align="left"><form:errors path="START_DATE" cssStyle="color:red"></form:errors> </td>
</tr>
<tr>
<td width="100" align="right">END_DATE</td>
<td><form:input path="END_DATE" id="demo2" type="text" size="25"/><a href="javascript:NewCal('demo2','ddmmyyyy')"><img src="image/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a></td>
<%-- <td><form:input path="END_DATE"/></td> --%>
<td align="left"><form:errors path="END_DATE" cssStyle="color:red"></form:errors> </td>
</tr>
<tr>
<td width="100" align="right">STATUS</td>
<td>
<form:select path="STATUS">
<form:option value="Completed" label="Completed"/>
<form:option value="Incomplete" label="Incomplete"/>
</form:select>
</td>
</tr>
<%-- <tr>
<td width="100" align="right">SURVEY_DESCRIPTION</td>
<td>
<form:input path="SURVEY_DESCRIPTION"/></td>
<td align="left">
<form:errors path="SURVEY_DESCRIPTION" cssStyle="color:red"></form:errors>
</td>
</tr> --%>
<tr valign="bottom">
<td colspan="2" align="center">
<%-- <input type="button" value="Delete" onclick="javascript:deleteContact('deleteContact.do?SURVEY_ID=${editContact.SURVEY_ID}');">
--%>
<input type="submit" name="" value="Save">
<input type="button" value="Back" onclick="javascript:go('viewAllSurvey.do');">
</td>
</tr>
</table>
</form:form>
</td>
</tr>
</table>
</body>
</html>
home.jsp<%@include file="taglib_includes.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">
<html>
<head>
<script type="text/javascript" src="js/survey.js"></script>
<title><spring:message code="App.Title"></spring:message> </title>
</head>
<body>
<center>Survey page Details</center>
<br>
<br>
<br>
<br>
<a href="viewAllSurvey.do">Show Survey List</a>
</body>
</html>
index.jsp<%-- <%
response.sendRedirect("viewAllSurvey.do");
%>
--%>
<%@include file="/views/taglib_includes.jsp" %>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ 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">
<html>
<head>
<script type="text/javascript" src="js/survey.js"></script>
<title>Survey-Status </title>
</head>
<body>
<h2><center>Survey page Details</center></h2>
<br>
<br>
<br>
<br>
<a href="viewAllSurvey.do">Show Survey List</a>
</body>
</html>



Labels: Spring MVC, Spring3.0