Project Structure.
Edit pom.xml for get required dependencies. - pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.spring.mvc</groupId>
<artifactId>SpringMVCProject</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>SpringMVCProject Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<java.version>1.8</java.version>
<spring.version>4.3.10.RELEASE</spring.version>
<cglib.version>2.2.2</cglib.version>
<org.aspectj-version>1.7.4</org.aspectj-version>
<org.slf4j-version>1.7.5</org.slf4j-version>
<servlet.api.version>3.1.0</servlet.api.version>
<jsp.api.version>2.2</jsp.api.version>
<jstl.version>1.2</jstl.version>
<log4j.version>1.2.15</log4j.version>
<tiles-jsp.version>3.0.7</tiles-jsp.version>
<validation-api.version>1.0.0.GA</validation-api.version>
<aspectjrt.version>1.6.11</aspectjrt.version>
<hibernate-validator.version>4.0.2.GA</hibernate-validator.version>
<mysql-connector-java.version>5.1.6</mysql-connector-java.version>
</properties>
<dependencies>
<!-- validation-api -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>${validation-api.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>${tiles-jsp.version}</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectjrt.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectjrt.version}</version>
</dependency>
<!-- hibernate-validator -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate-validator.version}</version>
</dependency>
<!-- Spring core & mvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<!-- CGLib for @Configuration -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>${cglib.version}</version>
<scope>runtime</scope>
</dependency>
<!-- Servlet Spec -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.api.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp.api.version}</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
</dependency>
<!-- mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java.version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<finalName>SpringMVCProject</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
Create Database
CREATE TABLE UserContact (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,Name varchar(30) NOT NULL,Email varchar(30) NOT NULL,Address varchar(150),Telephone varchar(20));
Spring Configuration - MvcConfiguration.java
package com.spring.mvc.application.config;
import javax.sql.DataSource;
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.EnableAspectJAutoProxy;import org.springframework.context.support.ReloadableResourceBundleMessageSource;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.datasource.DriverManagerDataSource;import org.springframework.web.servlet.ViewResolver;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import org.springframework.web.servlet.view.InternalResourceViewResolver;
/** * SpringMVCProject, copyright (c) 2017. * @author Devendra Borge * */@Configuration@ComponentScan(basePackages="com.spring.mvc")@EnableWebMvc@EnableAspectJAutoProxypublic class MvcConfiguration extends WebMvcConfigurerAdapter{
@Bean public ViewResolver getViewResolver(){ InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/forms/"); resolver.setSuffix(".jsp"); return resolver; } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); }
@Bean public DataSource getDataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/contactdb"); dataSource.setUsername("root"); dataSource.setPassword("adminuser"); return dataSource; } @Bean public JdbcTemplate getJdbcTemplate(){ return new JdbcTemplate(getDataSource()); } @Bean public ReloadableResourceBundleMessageSource getMessageResource(){ ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("message"); messageSource.setDefaultEncoding("UTF-8"); return messageSource; } }
Note - Change database configuration.
Create Controller - UserContactController.java
package com.spring.mvc.admin.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import com.spring.mvc.admin.dao.UserContactDAO;
import com.spring.mvc.admin.model.UserContact;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
/**
* SpringMVCProject, copyright (c) 2017.
* @author Devendra Borge
*
*/
@Controller
public class UserContactController {
@Autowired
private UserContactDAO userContactDAO;
@RequestMapping(value="/viewUserContact")
public ModelAndView listUserContact(ModelAndView model) {
try{
List<UserContact> listUserContact = userContactDAO.list();
model.addObject("listUserContact", listUserContact);
model.setViewName("SearchUserContactPage");
} catch (Exception e) {
model.setViewName("SystemError");
e.printStackTrace();
}
return model;
}
@RequestMapping(value = "/addUserContact", method = RequestMethod.GET)
public ModelAndView addUserContact(ModelAndView model) {
try{
UserContact userContact = new UserContact();
model.addObject("userContact", userContact);
model.setViewName("AddUserContactPage");
} catch (Exception e) {
model.setViewName("SystemError");
e.printStackTrace();
}
return model;
}
@RequestMapping(value = "/saveUserContact", method = RequestMethod.POST)
public String saveUserContact(@Valid UserContact userContact, BindingResult bindingResult, Model model) {
try{
if (bindingResult.hasErrors()) {
return "AddUserContactPage";
}
userContactDAO.save(userContact);
List<UserContact> listUserContact = userContactDAO.list();
model.addAttribute("listUserContact", listUserContact);
return "SearchUserContactPage";
} catch (Exception e) {
e.printStackTrace();
return "SystemError";
}
}
@RequestMapping(value = "/updateUserContact", method = RequestMethod.POST)
public String updateUserContact(@Valid UserContact userContact, BindingResult bindingResult, Model model) {
try{
if (bindingResult.hasErrors()) {
return "EditUserContactPage";
}
userContactDAO.update(userContact);
List<UserContact> listUserContact = userContactDAO.list();
model.addAttribute("listUserContact", listUserContact);
return "SearchUserContactPage"; } catch (Exception e) {
e.printStackTrace();
return "SystemError";
}
}
@RequestMapping(value = "/deleteUserContact", method = RequestMethod.GET)
public ModelAndView deleteUserContact(HttpServletRequest request) {
ModelAndView model = null; try{
userContactDAO.delete(request.getParameter("id"));
model = new ModelAndView("redirect:/viewUserContact");
} catch (Exception e) {
model.setViewName("SystemError");
e.printStackTrace();
}
return model;
}
@RequestMapping(value = "/editUserContact", method = RequestMethod.GET)
public ModelAndView editUserContact(HttpServletRequest request) {
ModelAndView model = null; try{
UserContact userContact = userContactDAO.get(request.getParameter("id"));
model = new ModelAndView("EditUserContactPage");
model.addObject("userContact", userContact);
} catch (Exception e) {
model = new ModelAndView("SystemError");
e.printStackTrace();
}
return model;
}
}
Create Pojo - UserContact.java
package com.spring.mvc.admin.model;
import org.springframework.stereotype.Component;
/**
* SpringMVCProject, copyright (c) 2017.
* @author Devendra Borge
*
*/
@Component
public class UserContact {
private String id;
private String name;
private String email;
private String address;
private String telephone;
public UserContact() {
}
public UserContact(String id, String name, String email, String address, String telephone) {
this.id = id;
this.name = name;
this.email = email;
this.address = address;
this.telephone = telephone;
}
public String getId() {
return id
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
}
Create DAO interface and implement classes
Interface - UserContactDAO.java
package com.spring.mvc.admin.dao;
import java.util.List;
import com.spring.mvc.admin.model.UserContact;
/**
* SpringMVCProject, copyright (c) 2017.
* @author Devendra Borge
*
*/
public interface UserContactDAO {
public void save(UserContact userContact);
public void update(UserContact userContact);
public void delete(String id);
public UserContact get(String id);
public List<UserContact> list();
}
Implement - UserContactDAOImpl.java
package com.spring.mvc.admin.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import com.spring.mvc.admin.model.UserContact;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import org.springframework.beans.factory.annotation.Autowired;
/**
* SpringMVCProject, copyright (c) 2017.
* @author Devendra Borge
*
*/
@Repository
public class UserContactDAOImpl implements UserContactDAO {
@Autowired
private JdbcTemplate jdbcTemplate;
public UserContactDAOImpl() {
}
@Override
public void save(UserContact userContact) {
String sql = "INSERT INTO UserContact (Name, Email, Address, Telephone) VALUES (?, ?, ?, ?)";
jdbcTemplate.update(sql, userContact.getName(), userContact.getEmail(), userContact.getAddress(), userContact.getTelephone());
}
@Override
public void update(UserContact userContact) {
String sql = "Update UserContact SET Name=?, Email=?, Address=?, Telephone=? WHERE Id=?";
jdbcTemplate.update(sql, userContact.getName(), userContact.getEmail(), userContact.getAddress(), userContact.getTelephone(),userContact.getId());
}
@Override
public void delete(String id) {
String sql = "DELETE FROM UserContact WHERE Id=?";
jdbcTemplate.update(sql, id);
}
@Override
public UserContact get(String id) {
String sql = "SELECT * FROM UserContact WHERE Id= "+id;
return jdbcTemplate.query(sql, new ResultSetExtractor<UserContact>() {
@Override
public UserContact extractData(ResultSet rs) throws SQLException, DataAccessException {
if (rs.next()) {
UserContact userContact = new UserContact();
userContact.setId(rs.getString("Id"));
userContact.setName(rs.getString("Name"));
userContact.setEmail(rs.getString("Email"));
userContact.setAddress(rs.getString("Address"));
userContact.setTelephone(rs.getString("Telephone"));
return userContact;
}
return null;
}
});
}
@Override
public List<UserContact> list() {
String sql = "SELECT * FROM UserContact";
List<UserContact> listUserContact = jdbcTemplate.query(sql, new RowMapper<UserContact>() {
@Override
public UserContact mapRow(ResultSet rs, int rowNum) throws SQLException {
UserContact userContact = new UserContact();
userContact.setId(rs.getString("Id"));
userContact.setName(rs.getString("Name"));
userContact.setEmail(rs.getString("Email"));
userContact.setAddress(rs.getString("Address"));
userContact.setTelephone(rs.getString("Telephone"));
return userContact;
}
});
return listUserContact;
}
}
Create JSP pages
Add page - AddUserContactPage.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.springframework.org/tags/form"
prefix="springForm"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="images/favicon.png">
<title>Add UserContact</title>
<!-- Bootstrap core CSS -->
<link href="<%=request.getContextPath() %>/resources/bootstrap/css/bootstrap.min.css" rel="stylesheet"><!--Date Picker CSS-->
<link href="<%=request.getContextPath() %>/resources/css/bootstrap-datepicker.css" rel="stylesheet" /><!-- Font Awesome CSS -->
<link href="<%=request.getContextPath() %>/resources/font-awesome/css/font-awesome.min.css" rel="stylesheet"><!-- Animate CSS -->
<link href="<%=request.getContextPath() %>/resources/css/animate.css" rel="stylesheet">
<!-- Custom styles -->
<link href="<%=request.getContextPath() %>/resources/css/Style.css" rel="stylesheet">
</head><body class="drawer drawer--left">
<div class="">
<div class="animated fadeIn content"> <div class="portlet-header"> <div class="content-header col-md-12">
<h2 class="content-header-title">Add UserContact</h2>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="./home">Home</a></li>
<li class="breadcrumb-item"><a href="./viewUserContact">Search UserContact</a></li>
<li class="breadcrumb-item active">Add UserContact</li>
</ol>
</div>
<!-- /.content-header -->
</div>
<!-- /.portlet-header --> <springForm:form action="./saveUserContact" method="post"
modelAttribute="userContact">
<div class="portlet-content">
<div class="row">
<springForm:hidden path="id" /><div class="col-xs-12 col-md-3"><div class="form-group"><label>Name</label><springForm:input path="name" type="text" class="form-control" placeholder="Please enter name" autocomplete="off" /><springForm:errors path="name" cssClass="error" /></div></div><div class="col-xs-12 col-md-3"><div class="form-group"><label>Email</label><springForm:input path="email" type="text" class="form-control" placeholder="Please enter email" autocomplete="off" /><springForm:errors path="email" cssClass="error" /></div></div><div class="col-xs-12 col-md-3"><div class="form-group"><label>Address</label><springForm:input path="address" type="text" class="form-control" placeholder="Please enter address" autocomplete="off" /><springForm:errors path="address" cssClass="error" /></div></div><div class="col-xs-12 col-md-3"><div class="form-group"><label>Telephone</label><springForm:input path="telephone" type="text" class="form-control" placeholder="Please enter telephone" autocomplete="off" /><springForm:errors path="telephone" cssClass="error" /></div></div>
<div class="col-xs-12 col-md-12">
<button type="submit" value="" class="btn btn-outline-success">Submit</button>
</a><button value="" onclick="this.form.reset();" class="btn btn-outline-danger">Clear</button>
</div>
</div>
</div>
</springForm:form>
</div>
</div>
<!-- End footer -->
<!-- Custom Scripts -->
<script src="<%=request.getContextPath() %>/resources/js/jquery.1.11.1.min.js"></script>
<!-- Bootstrap Script -->
<script src="<%=request.getContextPath() %>/resources/bootstrap/js/bootstrap.min.js"></script>
<!--Date Picker JS-->
<script type="text/javascript" src="<%=request.getContextPath() %>/resources/js/bootstrap-datepicker.min.js"></script> <!--Date Picker Script-->
<script>
$(document).ready(function () {
var date_input = $('input[name="date"]'); //our date input has the name "date"
var container = $('.bootstrap-iso form').length > 0 ? $('.bootstrap-iso form').parent() : "body";
date_input.datepicker({
format: 'mm/dd/yyyy',
container: container,
todayHighlight: true,
autoclose: true,
})
})
function goBack() {
window.history.back();
}
</script> <script>
$(document).ready(function () {
$("#mytable #checkall").click(function () {
if ($("#mytable #checkall").is(':checked')) {
$("#mytable input[type=checkbox]").each(function () {
$(this).prop("checked", true);
}); } else {
$("#mytable input[type=checkbox]").each(function () {
$(this).prop("checked", false);
});
}
}); $("[data-toggle=tooltip]").tooltip();
});
</script>
</body>
</html>
Update Page - EditUserContactPage.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.springframework.org/tags/form"
prefix="springForm"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="images/favicon.png">
<title>Update UserContact</title>
<!-- Bootstrap core CSS -->
<link href="<%=request.getContextPath() %>/resources/bootstrap/css/bootstrap.min.css" rel="stylesheet"><!--Date Picker CSS-->
<link href="<%=request.getContextPath() %>/resources/css/bootstrap-datepicker.css" rel="stylesheet" /><!-- Font Awesome CSS -->
<link href="<%=request.getContextPath() %>/resources/font-awesome/css/font-awesome.min.css" rel="stylesheet"><!-- Animate CSS -->
<link href="<%=request.getContextPath() %>/resources/css/animate.css" rel="stylesheet">
<!-- Custom styles -->
<link href="<%=request.getContextPath() %>/resources/css/Style.css" rel="stylesheet">
</head><body class="drawer drawer--left">
<div class="">
<div class="animated fadeIn content"> <div class="portlet-header"> <div class="content-header col-md-12">
<h2 class="content-header-title">Update UserContact</h2>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="./home">Home</a></li>
<li class="breadcrumb-item"><a href="./viewUserContact">Search UserContact</a></li>
<li class="breadcrumb-item active">Update UserContact</li>
</ol>
</div>
<!-- /.content-header -->
</div>
<!-- /.portlet-header --> <springForm:form action="./updateUserContact" method="post"
modelAttribute="userContact">
<div class="portlet-content">
<div class="row">
<springForm:hidden path="id" /><div class="col-xs-12 col-md-3"><div class="form-group"><label>Name</label><springForm:input path="name" type="text" class="form-control" placeholder="Please enter name" autocomplete="off" /><springForm:errors path="name" cssClass="error" /></div></div><div class="col-xs-12 col-md-3"><div class="form-group"><label>Email</label><springForm:input path="email" type="text" class="form-control" placeholder="Please enter email" autocomplete="off" /><springForm:errors path="email" cssClass="error" /></div></div><div class="col-xs-12 col-md-3"><div class="form-group"><label>Address</label><springForm:input path="address" type="text" class="form-control" placeholder="Please enter address" autocomplete="off" /><springForm:errors path="address" cssClass="error" /></div></div><div class="col-xs-12 col-md-3"><div class="form-group"><label>Telephone</label><springForm:input path="telephone" type="text" class="form-control" placeholder="Please enter telephone" autocomplete="off" /><springForm:errors path="telephone" cssClass="error" /></div></div>
<div class="col-xs-12 col-md-12">
<button type="submit" value="" class="btn btn-outline-success">Submit</button>
</a><button value="" onclick="this.form.reset();" class="btn btn-outline-danger">Clear</button>
</div>
</div>
</div>
</springForm:form>
</div>
</div>
<!-- End footer -->
<!-- Custom Scripts -->
<script src="<%=request.getContextPath() %>/resources/js/jquery.1.11.1.min.js"></script>
<!-- Bootstrap Script -->
<script src="<%=request.getContextPath() %>/resources/bootstrap/js/bootstrap.min.js"></script>
<!--Date Picker JS-->
<script type="text/javascript" src="<%=request.getContextPath() %>/resources/js/bootstrap-datepicker.min.js"></script> <!--Date Picker Script-->
<script>
$(document).ready(function () {
var date_input = $('input[name="date"]'); //our date input has the name "date"
var container = $('.bootstrap-iso form').length > 0 ? $('.bootstrap-iso form').parent() : "body";
date_input.datepicker({
format: 'mm/dd/yyyy',
container: container,
todayHighlight: true,
autoclose: true,
})
})
function goBack() {
window.history.back();
}
</script> <script>
$(document).ready(function () {
$("#mytable #checkall").click(function () {
if ($("#mytable #checkall").is(':checked')) {
$("#mytable input[type=checkbox]").each(function () {
$(this).prop("checked", true);
}); } else {
$("#mytable input[type=checkbox]").each(function () {
$(this).prop("checked", false);
});
}
}); $("[data-toggle=tooltip]").tooltip();
});
</script>
</body>
</html>
Search Page - SearchUserContactPage.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="images/favicon.png">
<title>Search UserContact</title>
<!-- Bootstrap core CSS -->
<link
href="<%=request.getContextPath()%>/resources/bootstrap/css/bootstrap.min.css"
rel="stylesheet">
<!--Date Picker CSS-->
<link
href="<%=request.getContextPath()%>/resources/css/bootstrap-datepicker.css"
rel="stylesheet" />
<!-- Font Awesome CSS -->
<link
href="<%=request.getContextPath()%>/resources/font-awesome/css/font-awesome.min.css"
rel="stylesheet">
<!-- Animate CSS -->
<link href="<%=request.getContextPath()%>/resources/css/animate.css"
rel="stylesheet">
<!-- Custom styles -->
<link href="<%=request.getContextPath()%>/resources/css/Style.css"
rel="stylesheet">
<!-- Datatable styles -->
<link
href="<%=request.getContextPath()%>/resources/Plugins/css/jquery.dataTables.min.css"
rel="stylesheet">
</head>
<body class="drawer drawer--left">
<div class="">
<div class="animated fadeIn">
<div class="portlet-header">
<div class="content-header col-md-12">
<h2 class="content-header-title">Search UserContact</h2>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="./home">Home</a></li>
<li class="breadcrumb-item active">Search UserContact</li>
<a href="./addUserContact"><button class="btn btn-success pull-right"
style="padding: 2px;">
<i class='fa fa-plus' aria-hidden='true'></i> Add
</button></a>
</ol>
</div>
<!-- /.content-header -->
</div>
<!-- /.portlet-header -->
<div class="portlet-content">
<div class="row">
<div class="col-md-12">
<div class="table-responsive">
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr><th>Name</th>
<th>Address</th>
<th>Telephone</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<c:forEach var="userContact" items="${listUserContact}"
varStatus="status">
<tr>
<td>${userContact.name}</td>
<td>${userContact.address}</td>
<td>${userContact.telephone}</td>
<td><a href="./editUserContact?id=${userContact.id}"><i class="fa fa-pencil"
style="color: #364760; font-size: 21px;" aria-hidden="true"></i></a>
<a href="./deleteUserContact?id=${userContact.id}"><i
class="fa fa-trash" style="color: red; font-size: 21px;"
aria-hidden="true"></i></a></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- /.portlet-content -->
</div>
</div>
</div>
<!-- End footer -->
<!-- Custom Scripts -->
<script
src="<%=request.getContextPath()%>/resources/js/jquery.1.11.1.min.js"></script>
<!-- Bootstrap Script -->
<script
src="<%=request.getContextPath()%>/resources/bootstrap/js/bootstrap.min.js"></script>
<!--Date Picker JS-->
<script type="text/javascript"
src="<%=request.getContextPath()%>/resources/js/bootstrap-datepicker.min.js"></script>
<!--Datetable JS-->
<script type="text/javascript"
src="<%=request.getContextPath()%>/resources/Plugins/js/jquery.dataTables.min.js"></script>
<!--Date Picker Script-->
<script>
$(document).ready(
function() {
$('#example').dataTable(
{
"bPaginate" : true,
"bLengthChange" : true,
"bFilter" : true,
"bInfo" : true,
"bAutoWidth" : false,
//"pageLength": 5,
"lengthMenu" : [ [ 5, 10, 25, 50, -1 ],
[ 5, 10, 25, 50, "All" ] ]
});
});
</script>
<script>
$(document).ready(
function() {
var date_input = $('input[name="date"]'); //our date input has the name "date"
var container = $('.bootstrap-iso form').length > 0 ? $(
'.bootstrap-iso form').parent() : "body";
date_input.datepicker({
format : 'mm/dd/yyyy',
container : container,
todayHighlight : true,
autoclose : true,
})
})
</script>
<script>
$(document).ready(function() {
$("#mytable #checkall").click(function() {
if ($("#mytable #checkall").is(':checked')) {
$("#mytable input[type=checkbox]").each(function() {
$(this).prop("checked", true);
});
} else {
$("#mytable input[type=checkbox]").each(function() {
$(this).prop("checked", false);
});
}
});
$("[data-toggle=tooltip]").tooltip();});</script></body></html>
Note - We use bootstrap design so you need to import it otherwise you can download sample project using below given link.