1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Java SSM 项目实战 day02 功能介绍 SSM整合 数据库和IDEA的maven工程搭建 产品信息查询和添加

Java SSM 项目实战 day02 功能介绍 SSM整合 数据库和IDEA的maven工程搭建 产品信息查询和添加

时间:2021-03-22 19:11:19

相关推荐

Java SSM 项目实战 day02 功能介绍 SSM整合 数据库和IDEA的maven工程搭建 产品信息查询和添加

一、数据库与表结构

1、环境准备

1.1数据库与表结构

1.1.1创建用户与授权数据库我们使用Oracle

Oracle为每个项目创建单独user,oracle数据表存放在表空间下,每个用户有独立表空间创建用户及密码:

语法[创建用户]: create user用户名identified by 口令[即密码];例子:create user test identified by test;

授权

语法:grant connect,resource to用户名;例子: grant connect,resource to test;

PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势。

(1)连接oracle数据库

以system用户的方式登录数据库

(2)创建用户

设置用户名和密码ssm和itzheng

设置权限

也可以点击右下角,观看SQL语句

重新打开PL/SQL以ssm用户的方式登录

1.1.2创建表

产品表信息描述

创建表sql

CREATE TABLE product(id varchar2(32) default SYS_GUID() PRIMARY KEY,productNum VARCHAR2(50) NOT NULL,productName VARCHAR2(50),cityName VARCHAR2(50),DepartureTime timestamp,productPrice Number,productDesc VARCHAR2(580),productStatus INT,CONSTRAINT product UNIQUE (id,productNum))insert into product (id,productNum,productName,cityName,DepartureTime,productprice,productDesc,productstatus)values ('676C5BD1035E429A8C2E114939C5685A','itzheng-002','北京三日游','北京',to_timestamp('10-10- 10:10:00.000000','dd-mm-yyyy hh24:mi:ss.ff'),1200,'不错的旅行',1);insert into product (id,productNum,productName,cityName,DepartureTime,productprice,productDesc,productstatus)values ('9F71F01CB448476DAFB309AA6DF9497F', 'itzheng-801','北京三日游','北京',to_timestamp( '10-10- 14:30:00.000000' , 'dd-mm-yyyy hh24:mi:ss.ff'),1800,'不错的旅行',0);insert into PRoDuCT (id,productnum,productname,cityname,depanrturetime,productprice,productdesc, productstatus)values ( '9F71F01CB448476DAFB309AA6DF9497F', 'itzheng-801','北京三日游','北京',to_timestamp( '10-10- 10:10:00.0oooo0' , 'dd-mm-yyyy hh24:mi:ss.fF'),1200,‘不错的旅行',1);

二、环境搭建

1、创建maven工程

(1)创建父工程

创建成功

(2)创建子工程

(3)创建其他子模块

(4)创建最后的web模块

所有的都创建成功

(5)修改pom.xml

复制以下内容

<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itzheng.zheng_ssm</groupId><artifactId>zheng_ssm</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><!-- 统一管理jar包版本 --><properties><spring.version>5.0.15.RELEASE</spring.version><slf4j.version>1.7.12</slf4j.version><log4j.version>1.2.17</log4j.version><shiro.version>1.2.3</shiro.version><mybatis.version>3.5.2</mybatis.version><mysql.version>8.0.17</mysql.version><oracle.version>10.2.0.1.0</oracle.version><spring.security.version>5.0.10.RELEASE</spring.security.version></properties><!-- 锁定jar包版本 --><dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency></dependencies></dependencyManagement><!-- 项目依赖jar包 --><dependencies><!-- spring --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.2</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version><scope>provided</scope></dependency><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- log start --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!-- log end --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.2</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.10</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>${spring.security.version}</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><version>${spring.security.version}</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>${spring.security.version}</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-taglibs</artifactId><version>${spring.security.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.9</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!--oracle数据库驱动--><dependency><groupId>com.oracle</groupId><artifactId>ojdbc14</artifactId><version>${oracle.version}</version></dependency><dependency><groupId>javax.annotation</groupId><artifactId>jsr250-api</artifactId><version>1.0</version></dependency></dependencies><build><pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.6.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding><showWarnings>true</showWarnings></configuration></plugin></plugins></pluginManagement></build><modules><module>zheng_ssm_dao</module><module>zheng_ssm_service</module><module>zheng_ssm_domain</module><module>zheng_ssm_utils</module><module>zheng_ssm_web</module><module>zheng_ssm_web</module></modules></project>

2、编写实体类Product

创建包

创建类

package com.itzheng.ssm.domain;import java.util.Date;/*产品信息*/public class Product {private String id; //主键private String productNum;//编号唯一private String productName; //名称private String cityName; //出发城市private Date departureTime; //出发时间private String departureTimeStr;private double productPrice; //产品价格private String productDesc; //产品描述private Integer productStatus;//状态 0 关闭 1 开启private String productStatusStr;public Product() {}public Product(String id, String productNum, String productName, String cityName, Date departureTime, String departureTimeStr, double productPrice, String productDesc, Integer productStatus, String productStatusStr) {this.id = id;this.productNum = productNum;this.productName = productName;this.cityName = cityName;this.departureTime = departureTime;this.departureTimeStr = departureTimeStr;this.productPrice = productPrice;this.productDesc = productDesc;this.productStatus = productStatus;this.productStatusStr = productStatusStr;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getProductNum() {return productNum;}public void setProductNum(String productNum) {this.productNum = productNum;}public String getProductName() {return productName;}public void setProductName(String productName) {this.productName = productName;}public String getCityName() {return cityName;}public void setCityName(String cityName) {this.cityName = cityName;}public Date getDepartureTime() {return departureTime;}public void setDepartureTime(Date departureTime) {this.departureTime = departureTime;}public String getDepartureTimeStr() {return departureTimeStr;}public void setDepartureTimeStr(String departureTimeStr) {this.departureTimeStr = departureTimeStr;}public double getProductPrice() {return productPrice;}public void setProductPrice(double productPrice) {this.productPrice = productPrice;}public String getProductDesc() {return productDesc;}public void setProductDesc(String productDesc) {this.productDesc = productDesc;}public Integer getProductStatus() {return productStatus;}public void setProductStatus(Integer productStatus) {this.productStatus = productStatus;}public String getProductStatusStr() {return productStatusStr;}public void setProductStatusStr(String productStatusStr) {this.productStatusStr = productStatusStr;}@Overridepublic String toString() {return "Product{" +"id='" + id + '\'' +", productNum='" + productNum + '\'' +", productName='" + productName + '\'' +", cityName='" + cityName + '\'' +", departureTime=" + departureTime +", departureTimeStr='" + departureTimeStr + '\'' +", productPrice=" + productPrice +", productDesc='" + productDesc + '\'' +", productStatus=" + productStatus +", productStatusStr='" + productStatusStr + '\'' +'}';}}

3、编写业务接口

(1)创建dao接口

创建包

创建接口IProductDao

(2)创建Service接口以及实现

a、创建IProductService接口

package com.itzheng.ssm.service;import com.itzheng.ssm.domain.Product;import java.util.List;public interface IProductService {public List<Product> findAll() throws Exception;}

b、创建IProductService接口实现类ProductServiceImpl

package com.itzheng.ssm.service.impl;import com.itzheng.ssm.dao.IProductDao;import com.itzheng.ssm.domain.Product;import com.itzheng.ssm.service.IProductService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import java.util.List;@Service@Transactionalpublic class ProductServiceImpl implements IProductService {@Autowiredprivate IProductDao productDao;@Overridepublic List<Product> findAll() throws Exception {return productDao.findAll();}}

三、SSM整合与产品查询

1、在zheng_ssm_web下的src当中的main当中创建java文件夹

指定java文件夹为Sources Root

2、创建resources文件夹

指定该文件夹为Resources Root

1、Spring环境配置

1.1 编写Spring配置文件applicationContext.xml

1.2 编写Spring配置文件spring-mvc.xml

1.3 修改web.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd/schema/aop/schema/aop/spring-aop.xsd/schema/tx/schema/tx/spring-tx.xsd"><!--开启注解扫描,管理service和dao --><context:component-scan base-package="com.itzheng.ssm.service"></context:component-scan><context:component-scan base-package="com.itzheng.ssm.dao"></context:component-scan><context:property-placeholder location="classpath:db.properties"/><!--配置连接池--><bean id="dataSource" class="com.mchange.boPooledDataSource"><property name="driverClass" value="$ {jdbc.driver}" /><property name="jdbcUrl" value="$ {jdbc.url} " /><property name="user" value="$ {jdbc.username } " /><property name="password" value="$ {jdbc.password}" /></bean><!-- 把交给1oc管理sqlsessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/></bean></beans >

1.4 创建db.properties

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=root

1.5 配置事务:applicationContext.xml

<!--配置spring的声明式事务管理--><!--配置事务管理器--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><tx:annotation-driven transaction-manager="transactionManager" />

1.6 配置spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:mvc="/schema/mvc"xmlns:context="/schema/context"xmlns:xsi="/2001/XMLSchema-instance"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/mvc/schema/mvc/spring-mvc.xsd/schema/context/schema/context/spring-context.xsd/schema/aop/schema/aop/spring-aop.xsd"><!-- 注解探测器 --><context:component-scan base-package="com.itzheng.ssm.controller"></context:component-scan><!-- 配置视图解析器 --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--JSP文件所在的目录--><property name="prefix" value="/pages/" /><!--文件的后缀名--><property name="suffix" value=".jsp" /></bean><!-- 一设置静态资源不过滤 --><mvc:resources location="/css/" mapping="/css/**"/><mvc:resources location="/img/" mapping="/img/**"/><mvc:resources location="/js/" mapping="/js/**"/><mvc:resources location="/plugins/" mapping="/plugins/**"/><!-- 开启对springMvc注解的支持 --><mvc:annotation-driven /><!-- 支持AoP的注解支持,AOP底层使用代理技术JDK动态代理,要求必须有接口cglib代理,生成子类对象,proxy-target-class="true”默认使用cglib的方式--><aop:aspectj-autoproxy proxy-target-class="true" /></beans>

1.7 配置web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_1.xsd"version="3.1"><!--配置Spring的监听器,默认只加载WEB-INF目录下的applicationContext.xml配置文件--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--设置配置文件的路径,让它加载resources路径下的配置文件--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:applicationContext.xml</param-value></context-param><!--配置前端控制器--><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--初始化加载参数 启动的时候随着前端控制器的创建 加载springmvc.xml配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!--服务器启动的时候就创建对象--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><!-- 解决中文乱码过滤器 --><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--初始化界面--><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></web-app>

1.7 修改db.properties,为Oracle的驱动

jdbc.driver=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@192.168.75.100:1521:orcljdbc.username=ssmjdbc.password=itzheng

1.8 创建以上配置文件对应的包扫描

创建包

创建一个类

package com.itzheng.ssm.controller;import com.itzheng.ssm.service.IProductService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controller@RequestMapping("/product")public class ProductController {@Autowiredprivate IProductService productService;public ModelAndView findAll() {ModelAndView mv = new ModelAndView();return mv;}}

applicationContext.xml当中的包扫描变正常

1.9 继续完善ProductController 类

package com.itzheng.ssm.controller;import com.itzheng.ssm.domain.Product;import com.itzheng.ssm.service.IProductService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import java.util.List;@Controller@RequestMapping("/product")public class ProductController {@Autowiredprivate IProductService productService;@RequestMapping("/findAll.do")public ModelAndView findAll() throws Exception {ModelAndView mv = new ModelAndView();List<Product> ps = productService.findAll();mv.addObject("",ps);mv.setViewName("");return mv;}}

2.0 继续完善IProductDao

package com.itzheng.ssm.dao;import com.itzheng.ssm.domain.Product;import org.apache.ibatis.annotations.Select;import java.util.List;public interface IProductDao {//查询所有的产品信息@Select("select * from product")public List<Product> findAll() throws Exception;}

2、页面显示

功能实现逻辑图

(1)产品操作-查询全部商品

a、完善index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><html><body><a href="${pageContext.request.contextPath}/product/findAll.do" >查询所有的产品信息 </a></body></html>

b、复制资源文件

将上节当中的的adminlte当中的内容拷贝到工程当中

创建pages目录

c、扫描dao接口

在applicationContext.xml当中

d、创建product-list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@taglib uri="/jsp/jstl/core" prefix="c" %><!DOCTYPE html><html><head><!-- 页面meta --><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>数据 - AdminLTE2定制版</title><meta name="description" content="AdminLTE2定制版"><meta name="keywords" content="AdminLTE2定制版"><!-- Tell the browser to be responsive to screen width --><metacontent="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"name="viewport"><!-- Bootstrap 3.3.6 --><!-- Font Awesome --><!-- Ionicons --><!-- iCheck --><!-- Morris chart --><!-- jvectormap --><!-- Date Picker --><!-- Daterange picker --><!-- Bootstrap time Picker --><!--<link rel="stylesheet" href="${pageContext.request.contextPath}/${pageContext.request.contextPath}/${pageContext.request.contextPath}/plugins/timepicker/bootstrap-timepicker.min.css">--><!-- bootstrap wysihtml5 - text editor --><!--数据表格--><!-- 表格树 --><!-- select2 --><!-- Bootstrap Color Picker --><!-- bootstrap wysihtml5 - text editor --><!--bootstrap-markdown--><!-- Theme style --><!-- AdminLTE Skins. Choose a skin from the css/skinsfolder instead of downloading all of them to reduce the load. --><!-- Ion Slider --><!-- ion slider Nice --><!-- bootstrap slider --><!-- bootstrap-datetimepicker --><!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --><!-- WARNING: Respond.js doesn't work if you view the page via file:// --><!--[if lt IE 9]><script src="/html5shiv/3.7.3/html5shiv.min.js"></script><script src="/respond/1.4.2/respond.min.js"></script><![endif]--><!-- jQuery 2.2.3 --><!-- jQuery UI 1.11.4 --><!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip --><!-- Bootstrap 3.3.6 --><!-- Morris.js charts --><!-- Sparkline --><!-- jvectormap --><!-- jQuery Knob Chart --><!-- daterangepicker --><!-- datepicker --><!-- Bootstrap WYSIHTML5 --><!-- Slimscroll --><!-- FastClick --><!-- iCheck --><!-- AdminLTE App --><!-- 表格树 --><!-- select2 --><!-- bootstrap color picker --><!-- bootstrap time picker --><!--<script src="${pageContext.request.contextPath}/${pageContext.request.contextPath}/${pageContext.request.contextPath}/plugins/timepicker/bootstrap-timepicker.min.js"></script>--><!-- Bootstrap WYSIHTML5 --><!--bootstrap-markdown--><!-- CK Editor --><!-- InputMask --><!-- DataTables --><!-- ChartJS 1.0.1 --><!-- FLOT CHARTS --><!-- FLOT RESIZE PLUGIN - allows the chart to redraw when the window is resized --><!-- FLOT PIE PLUGIN - also used to draw donut charts --><!-- FLOT CATEGORIES PLUGIN - Used to draw bar charts --><!-- jQuery Knob --><!-- Sparkline --><!-- Morris.js charts --><!-- Ion Slider --><!-- Bootstrap slider --><!-- bootstrap-datetimepicker --><!-- 页面meta /--><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/morris/morris.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/datepicker/datepicker3.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.theme.default.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/select2/select2.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap-markdown/css/bootstrap-markdown.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/adminLTE/css/skins/_all-skins.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/css/style.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.skinNice.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap-slider/slider.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.css"></head><body class="hold-transition skin-purple sidebar-mini"><div class="wrapper"><!-- 页面头部 --><jsp:include page="header.jsp"></jsp:include><!-- 页面头部 /--><!-- 导航侧栏 --><jsp:include page="aside.jsp"></jsp:include><!-- 导航侧栏 /--><!-- 内容区域 --><!-- @@master = admin-layout.html--><!-- @@block = content --><div class="content-wrapper"><!-- 内容头部 --><section class="content-header"><h1>数据管理 <small>数据列表</small></h1><ol class="breadcrumb"><li><a href="#"><i class="fa fa-dashboard"></i> 首页</a></li><li><a href="#">数据管理</a></li><li class="active">数据列表</li></ol></section><!-- 内容头部 /--><!-- 正文区域 --><section class="content"><!-- .box-body --><div class="box box-primary"><div class="box-header with-border"><h3 class="box-title">列表</h3></div><div class="box-body"><!-- 数据表格 --><div class="table-box"><!--工具栏--><div class="pull-left"><div class="form-group form-inline"><div class="btn-group"><button type="button" class="btn btn-default" title="新建"onclick="location.href='${pageContext.request.contextPath}/pages/product-add.jsp'"><i class="fa fa-file-o"></i> 新建</button><button type="button" class="btn btn-default" title="删除"><i class="fa fa-trash-o"></i> 删除</button><button type="button" class="btn btn-default" title="开启"><i class="fa fa-check"></i> 开启</button><button type="button" class="btn btn-default" title="屏蔽"><i class="fa fa-ban"></i> 屏蔽</button><button type="button" class="btn btn-default" title="刷新"><i class="fa fa-refresh"></i> 刷新</button></div></div></div><div class="box-tools pull-right"><div class="has-feedback"><input type="text" class="form-control input-sm"placeholder="搜索"> <spanclass="glyphicon glyphicon-search form-control-feedback"></span></div></div><!--工具栏/--><!--数据列表--><table id="dataList"class="table table-bordered table-striped table-hover dataTable"><thead><tr><th class="" style="padding-right: 0px;"><inputid="selall" type="checkbox" class="icheckbox_square-blue"></th><th class="sorting_asc">ID</th><th class="sorting_desc">编号</th><th class="sorting_asc sorting_asc_disabled">产品名称</th><th class="sorting_desc sorting_desc_disabled">出发城市</th><th class="sorting">出发时间</th><th class="text-center sorting">产品价格</th><th class="sorting">产品描述</th><th class="text-center sorting">状态</th><th class="text-center">操作</th></tr></thead><tbody><c:forEach items="${productList}" var="product"><tr><td><input name="ids" type="checkbox"></td><td>${product.id }</td><td>${product.productNum }</td><td>${product.productName }</td><td>${product.cityName }</td><td>${product.departureTimeStr }</td><td class="text-center">${product.productPrice }</td><td>${product.productDesc }</td><td class="text-center">${product.productStatusStr }</td><td class="text-center"><button type="button" class="btn bg-olive btn-xs">订单</button><button type="button" class="btn bg-olive btn-xs">详情</button><button type="button" class="btn bg-olive btn-xs">编辑</button></td></tr></c:forEach></tbody><!--<tfoot><tr><th>Rendering engine</th><th>Browser</th><th>Platform(s)</th><th>Engine version</th><th>CSS grade</th></tr></tfoot>--></table><!--数据列表/--><!--工具栏--><div class="pull-left"><div class="form-group form-inline"><div class="btn-group"><button type="button" class="btn btn-default" title="新建"><i class="fa fa-file-o"></i> 新建</button><button type="button" class="btn btn-default" title="删除"><i class="fa fa-trash-o"></i> 删除</button><button type="button" class="btn btn-default" title="开启"><i class="fa fa-check"></i> 开启</button><button type="button" class="btn btn-default" title="屏蔽"><i class="fa fa-ban"></i> 屏蔽</button><button type="button" class="btn btn-default" title="刷新"><i class="fa fa-refresh"></i> 刷新</button></div></div></div><div class="box-tools pull-right"><div class="has-feedback"><input type="text" class="form-control input-sm"placeholder="搜索"> <spanclass="glyphicon glyphicon-search form-control-feedback"></span></div></div><!--工具栏/--></div><!-- 数据表格 /--></div><!-- /.box-body --><!-- .box-footer--><div class="box-footer"><div class="pull-left"><div class="form-group form-inline">总共2 页,共14 条数据。 每页 <select class="form-control"><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option></select> 条</div></div><div class="box-tools pull-right"><ul class="pagination"><li><a href="#" aria-label="Previous">首页</a></li><li><a href="#">上一页</a></li><li><a href="#">1</a></li><li><a href="#">2</a></li><li><a href="#">3</a></li><li><a href="#">4</a></li><li><a href="#">5</a></li><li><a href="#">下一页</a></li><li><a href="#" aria-label="Next">尾页</a></li></ul></div></div><!-- /.box-footer--></div></section><!-- 正文区域 /--></div><!-- @@close --><!-- 内容区域 /--><!-- 底部导航 --><footer class="main-footer"><div class="pull-right hidden-xs"><b>Version</b> 1.0.8</div><strong>Copyright &copy; - <ahref="">研究院研发部</a>.</strong> All rights reserved.</footer><!-- 底部导航 /--></div><scriptsrc="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/jQueryUI/jquery-ui.min.js"></script><script>$.widget.bridge('uibutton', $.ui.button);</script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/raphael/raphael-min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/morris/morris.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/sparkline/jquery.sparkline.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-world-mill-en.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/knob/jquery.knob.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/daterangepicker/moment.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.zh-CN.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datepicker/bootstrap-datepicker.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/slimScroll/jquery.slimscroll.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/fastclick/fastclick.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/adminLTE/js/app.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/select2/select2.full.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.zh-CN.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/bootstrap-markdown.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/markdown.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/to-markdown.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/ckeditor/ckeditor.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.date.extensions.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.extensions.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datatables/jquery.dataTables.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/chartjs/Chart.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.resize.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.pie.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.categories.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-slider/bootstrap-slider.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/locales/bootstrap-datetimepicker.zh-CN.js"></script><script>$(document).ready(function () {// 选择框$(".select2").select2();// WYSIHTML5编辑器$(".textarea").wysihtml5({locale: 'zh-CN'});});// 设置激活菜单function setSidebarActive(tagUri) {var liObj = $("#" + tagUri);if (liObj.length > 0) {liObj.parent().parent().addClass("active");liObj.addClass("active");}}$(document).ready(function () {// 激活导航位置setSidebarActive("admin-datalist");// 列表按钮$("#dataList td input[type='checkbox']").iCheck({checkboxClass: 'icheckbox_square-blue',increaseArea: '20%'});// 全选操作$("#selall").click(function () {var clicks = $(this).is(':checked');if (!clicks) {$("#dataList td input[type='checkbox']").iCheck("uncheck");} else {$("#dataList td input[type='checkbox']").iCheck("check");}$(this).data("clicks", !clicks);});});</script></body></html>

d、完善ProductController类

package com.itzheng.ssm.controller;import com.itzheng.ssm.domain.Product;import com.itzheng.ssm.service.IProductService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import java.util.List;@Controller@RequestMapping("/product")public class ProductController {@Autowiredprivate IProductService productService;@RequestMapping("/findAll.do")public ModelAndView findAll() throws Exception {ModelAndView mv = new ModelAndView();List<Product> ps = productService.findAll();mv.addObject("productList",ps);mv.setViewName("product-list");return mv;}}

e、product-list.jsp当中缺少两个页面,创建这两个页面

创建header.jsp和aside.jsp

header.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!-- 页面头部 --><header class="main-header"><!-- Logo --><a href="all-admin-index.html" class="logo"> <!-- mini logo for sidebar mini 50x50 pixels --><span class="logo-mini"><b>数据</b></span> <!-- logo for regular state and mobile devices --><span class="logo-lg"><b>数据</b>后台管理</span></a><!-- Header Navbar: style can be found in header.less --><nav class="navbar navbar-static-top"><!-- Sidebar toggle button--><a href="#" class="sidebar-toggle" data-toggle="offcanvas"role="button"> <span class="sr-only">Toggle navigation</span></a><div class="navbar-custom-menu"><ul class="nav navbar-nav"><li class="dropdown user user-menu"><a href="#"class="dropdown-toggle" data-toggle="dropdown"> <imgsrc="${pageContext.request.contextPath}/img/user2-160x160.jpg"class="user-image" alt="User Image"> <span class="hidden-xs">xxx</span></a><ul class="dropdown-menu"><!-- User image --><li class="user-header"><imgsrc="${pageContext.request.contextPath}/img/user2-160x160.jpg"class="img-circle" alt="User Image"></li><!-- Menu Footer--><li class="user-footer"><div class="pull-left"><a href="#" class="btn btn-default btn-flat">修改密码</a></div><div class="pull-right"><a href="${pageContext.request.contextPath}/logout.do"class="btn btn-default btn-flat">注销</a></div></li></ul></li></ul></div></nav></header><!-- 页面头部 /-->

aside.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><aside class="main-sidebar"><!-- sidebar: style can be found in sidebar.less --><section class="sidebar"><!-- Sidebar user panel --><div class="user-panel"><div class="pull-left image"><img src="${pageContext.request.contextPath}/img/user2-160x160.jpg"class="img-circle" alt="User Image"></div><div class="pull-left info"><p>xxx</p><a href="#"><i class="fa fa-circle text-success"></i> 在线</a></div></div><!-- sidebar menu: : style can be found in sidebar.less --><ul class="sidebar-menu"><li class="header">菜单</li><li id="admin-index"><ahref="${pageContext.request.contextPath}/pages/main.jsp"><iclass="fa fa-dashboard"></i> <span>首页</span></a></li><li class="treeview"><a href="#"> <i class="fa fa-cogs"></i><span>系统管理</span> <span class="pull-right-container"> <iclass="fa fa-angle-left pull-right"></i></span></a><ul class="treeview-menu"><li id="system-setting"><ahref="${pageContext.request.contextPath}/user/findAll.do"> <iclass="fa fa-circle-o"></i> 用户管理</a></li><li id="system-setting"><ahref="${pageContext.request.contextPath}/role/findAll.do"> <iclass="fa fa-circle-o"></i> 角色管理</a></li><li id="system-setting"><ahref="${pageContext.request.contextPath}/permission/findAll.do"><i class="fa fa-circle-o"></i> 资源权限管理</a></li><li id="system-setting"><ahref="${pageContext.request.contextPath}/sysLog/findAll.do"> <iclass="fa fa-circle-o"></i> 访问日志</a></li></ul></li><li class="treeview"><a href="#"> <i class="fa fa-cube"></i><span>基础数据</span> <span class="pull-right-container"> <iclass="fa fa-angle-left pull-right"></i></span></a><ul class="treeview-menu"><li id="system-setting"><ahref="${pageContext.request.contextPath}/product/findAll.do"><i class="fa fa-circle-o"></i> 产品管理</a></li><li id="system-setting"><ahref="${pageContext.request.contextPath}/orders/findAll.do?page=1&pageSize=3"> <iclass="fa fa-circle-o"></i> 订单管理</a></li></ul></li></ul></section><!-- /.sidebar --></aside>

f、运行该项目

web当中添加Tomcat插件

<plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><configuration><port>8888</port></configuration><version>2.2</version></plugin></plugins>

点击OK

clean工程

安装成功

运行项目

报错

需要更新一下数据库驱动

<dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency>

运行项目

访问链接http://localhost:8888/zheng_ssm_web/

运行成功

时间和状态没有显示

g、修改Product类

public String getProductStatusStr() {if(productStatus != null){//状态 0 关闭 1 开启if(productStatus == 0){productStatusStr = "关闭";}if(productStatus == 1){productStatusStr = "打开";}}return productStatusStr;}

h、再次运行项目

先clear

在install

运行项目

访问地址http://localhost:8888/zheng_ssm_web/product/findAll.do

显示成功

(2)处理时间显示的问题

在utils下新建一个包

a、创建DateUtils类

package com.itzheng.ssm.utils;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class DateUtils {//日期转换成字符串public static String date2String(Date date, String patt) {SimpleDateFormat sdf = new SimpleDateFormat(patt);String format = sdf.format(date);return format;}//字符串转换成日期public static Date string2Date(String str, String patt) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat(patt);Date date = sdf.parse(str);return date;}}

b、修改Product类

public String getDepartureTimeStr() {if(departureTime != null){departureTimeStr = DateUtils.date2String(departureTime,"yyyy-MM-dd HH:mm:ss");}return departureTimeStr;}

c、再次运行项目

先clear

在install

运行项目

访问地址http://localhost:8888/zheng_ssm_web/product/findAll.do

显示成功

3、product-list页面制作

创建product-list1.jsp

修改ProductController

在product-list1.jsp当中引入adminlte当中的admin-datalist.html,将其代码复制

替换css和js的文件路径

选中之后Ctrl+F

替换成功

删除头部和侧边导航

通过jsp引入页面头部和侧边导航

<!-- 页面头部 --><jsp:include page="header.jsp"></jsp:include><!-- 页面头部 /--><!-- 导航侧栏 --><jsp:include page="aside.jsp"></jsp:include>

修改数据列表表头的内容

<tr><th class="" style="padding-right:0px;"><input id="selall" type="checkbox" class="icheckbox_square-blue"></th><th class="sorting_asc">ID</th><th class="sorting_desc">编号</th><th class="sorting_asc sorting_asc_disabled">产品名称</th><th class="sorting_desc sorting_desc_disabled">出发城市</th><th class="sorting">出发时间</th><th class="text-center sorting">产品价格</th><th class="text-center sorting">产品描述</th><th class="text-center sorting">状态</th><th class="text-center">操作</th></tr>

继续修改删除其他tr只留下一个tr

引入

<%@taglib uri="/jsp/jstl/core" prefix="c" %>

继续修改tr当中的内容

<c:forEach items="${productList}" var="product" ><tr><td><input name="ids" type="checkbox"></td><td>${product.id}</td><td>${product.productNum}</td><td>${product.productName}</td><td> ${product.cityName}</td><td>${product.departureTimeStr}</td><td class="text-center">${product.productPrice}</td><td class="text-center">${product.productDesc}</td><td class="text-center">${product.productStatusStr}</td><td class="text-center"><button type="button" class="btn bg-olive btn-xs">订单</button><button type="button" class="btn bg-olive btn-xs">详情</button><button type="button" class="btn bg-olive btn-xs">编辑</button></td></tr></c:forEach>

修改一下页面

先clear

在install

运行项目

访问地址http://localhost:8888/zheng_ssm_web/product/findAll.do

显示成功

4、main.jsp页面制作

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><!-- 页面meta --><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>ITCAST - AdminLTE2定制版</title><meta name="description" content="AdminLTE2定制版"><meta name="keywords" content="AdminLTE2定制版"><metacontent="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"name="viewport"><!-- Bootstrap time Picker --><!--<link rel="stylesheet" href="${pageContext.request.contextPath}/${pageContext.request.contextPath}/${pageContext.request.contextPath}/plugins/timepicker/bootstrap-timepicker.min.css">--><!--[if lt IE 9]><script src="/html5shiv/3.7.3/html5shiv.min.js"></script><script src="/respond/1.4.2/respond.min.js"></script><![endif]--><!--<script src="${pageContext.request.contextPath}/${pageContext.request.contextPath}/${pageContext.request.contextPath}/plugins/timepicker/bootstrap-timepicker.min.js"></script>--><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/morris/morris.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/datepicker/datepicker3.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.theme.default.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/select2/select2.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap-markdown/css/bootstrap-markdown.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/adminLTE/css/skins/_all-skins.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/css/style.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.skinNice.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap-slider/slider.css"></head><body class="hold-transition skin-blue sidebar-mini"><div class="wrapper"><!-- 页面头部 --><jsp:include page="header.jsp"></jsp:include><!-- 页面头部 /--><!-- 导航侧栏 --><jsp:include page="aside.jsp"></jsp:include><!-- 导航侧栏 /--><!-- 内容区域 --><div class="content-wrapper"><img src="${pageContext.request.contextPath}/img/center.jpg"width="100%" height="100%" /></div><!-- 内容区域 /--><!-- 底部导航 --><footer class="main-footer"><div class="pull-right hidden-xs"><b>Version</b> 1.0.8</div><strong>Copyright &copy; - <ahref="">研究院研发部</a>.</strong> All rights reserved. </footer><!-- 底部导航 /--></div><scriptsrc="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/jQueryUI/jquery-ui.min.js"></script><script>$.widget.bridge('uibutton', $.ui.button);</script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/raphael/raphael-min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/morris/morris.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/sparkline/jquery.sparkline.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-world-mill-en.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/knob/jquery.knob.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/daterangepicker/moment.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.zh-CN.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datepicker/bootstrap-datepicker.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/slimScroll/jquery.slimscroll.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/fastclick/fastclick.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/adminLTE/js/app.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/select2/select2.full.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.zh-CN.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/bootstrap-markdown.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/markdown.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/to-markdown.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/ckeditor/ckeditor.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.date.extensions.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.extensions.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datatables/jquery.dataTables.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/chartjs/Chart.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.resize.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.pie.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.categories.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-slider/bootstrap-slider.js"></script><script>$(document).ready(function() {// 选择框$(".select2").select2();// WYSIHTML5编辑器$(".textarea").wysihtml5({locale : 'zh-CN'});});// 设置激活菜单function setSidebarActive(tagUri) {var liObj = $("#" + tagUri);if (liObj.length > 0) {liObj.parent().parent().addClass("active");liObj.addClass("active");}}$(document).ready(function() {// 激活导航位置setSidebarActive("admin-index");});</script></body></html>

访问http://localhost:8888/zheng_ssm_web/pages/main.jsp

处理一下index.jsp

访问http://localhost:8888/zheng_ssm_web/

四、产品的操作

1、添加产品

流程图

(1)实现添加产品的功能

a、修改product-List.jsp

<button type="button" class="btn btn-default" title="新建"onclick="location.href='${pageContext.request.contextPath}/pages/product-add.jsp'"><i class="fa fa-file-o"></i> 新建</button>

b、创建product-add.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><!-- 页面meta --><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>数据 - AdminLTE2定制版</title><meta name="description" content="AdminLTE2定制版"><meta name="keywords" content="AdminLTE2定制版"><!-- Tell the browser to be responsive to screen width --><metacontent="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"name="viewport"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/morris/morris.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/datepicker/datepicker3.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.theme.default.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/select2/select2.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap-markdown/css/bootstrap-markdown.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/adminLTE/css/skins/_all-skins.min.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/css/style.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.skinNice.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap-slider/slider.css"><link rel="stylesheet"href="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.css"></head><body class="hold-transition skin-purple sidebar-mini"><div class="wrapper"><!-- 页面头部 --><jsp:include page="header.jsp"></jsp:include><!-- 页面头部 /--><!-- 导航侧栏 --><jsp:include page="aside.jsp"></jsp:include><!-- 导航侧栏 /--><!-- 内容区域 --><div class="content-wrapper"><!-- 内容头部 --><section class="content-header"><h1>产品管理 <small>产品表单</small></h1><ol class="breadcrumb"><li><a href="${pageContext.request.contextPath}/index.jsp"><iclass="fa fa-dashboard"></i> 首页</a></li><li><ahref="${pageContext.request.contextPath}/product/findAll.do">产品管理</a></li><li class="active">产品表单</li></ol></section><!-- 内容头部 /--><form action="${pageContext.request.contextPath}/product/save.do"method="post"><!-- 正文区域 --><section class="content"> <!--产品信息--><div class="panel panel-default"><div class="panel-heading">产品信息</div><div class="row data-type"><div class="col-md-2 title">产品编号</div><div class="col-md-4 data"><input type="text" class="form-control" name="productNum"placeholder="产品编号" value=""></div><div class="col-md-2 title">产品名称</div><div class="col-md-4 data"><input type="text" class="form-control" name="productName"placeholder="产品名称" value=""></div><div class="col-md-2 title">出发时间</div><div class="col-md-4 data"><div class="input-group date"><div class="input-group-addon"><i class="fa fa-calendar"></i></div><input type="text" class="form-control pull-right"id="datepicker-a3" name="departureTime"></div></div><div class="col-md-2 title">出发城市</div><div class="col-md-4 data"><input type="text" class="form-control" name="cityName"placeholder="出发城市" value=""></div><div class="col-md-2 title">产品价格</div><div class="col-md-4 data"><input type="text" class="form-control" placeholder="产品价格"name="productPrice" value=""></div><div class="col-md-2 title">产品状态</div><div class="col-md-4 data"><select class="form-control select2" style="width: 100%"name="productStatus"><option value="0" selected="selected">关闭</option><option value="1">开启</option></select></div><div class="col-md-2 title rowHeight2x">其他信息</div><div class="col-md-10 data rowHeight2x"><textarea class="form-control" rows="3" placeholder="其他信息"name="productDesc"></textarea></div></div></div><!--订单信息/--> <!--工具栏--><div class="box-tools text-center"><button type="submit" class="btn bg-maroon">保存</button><button type="button" class="btn bg-default"onclick="history.back(-1);">返回</button></div><!--工具栏/--> </section><!-- 正文区域 /--></form></div><!-- 内容区域 /--><!-- 底部导航 --><footer class="main-footer"><div class="pull-right hidden-xs"><b>Version</b> 1.0.8</div><strong>Copyright &copy; - <ahref="">研究院研发部</a>.</strong> All rights reserved. </footer><!-- 底部导航 /--></div><scriptsrc="${pageContext.request.contextPath}/plugins/jQuery/jquery-2.2.3.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/jQueryUI/jquery-ui.min.js"></script><script>$.widget.bridge('uibutton', $.ui.button);</script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap/js/bootstrap.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/raphael/raphael-min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/morris/morris.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/sparkline/jquery.sparkline.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-world-mill-en.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/knob/jquery.knob.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/daterangepicker/moment.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.zh-CN.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datepicker/bootstrap-datepicker.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/slimScroll/jquery.slimscroll.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/fastclick/fastclick.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/iCheck/icheck.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/adminLTE/js/app.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/select2/select2.full.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.zh-CN.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/bootstrap-markdown.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/markdown.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-markdown/js/to-markdown.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/ckeditor/ckeditor.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.date.extensions.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/input-mask/jquery.inputmask.extensions.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datatables/jquery.dataTables.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/chartjs/Chart.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.resize.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.pie.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/flot/jquery.flot.categories.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.min.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-slider/bootstrap-slider.js"></script><scriptsrc="${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js"></script><script>$(document).ready(function() {// 选择框$(".select2").select2();// WYSIHTML5编辑器$(".textarea").wysihtml5({locale : 'zh-CN'});});// 设置激活菜单function setSidebarActive(tagUri) {var liObj = $("#" + tagUri);if (liObj.length > 0) {liObj.parent().parent().addClass("active");liObj.addClass("active");}}$(document).ready(function() {$('#datepicker-a3').datetimepicker({format : "yyyy-mm-dd hh:ii",autoclose : true,todayBtn : true,language : "zh-CN"});});$(document).ready(function() {// 激活导航位置setSidebarActive("order-manage");$("#datepicker-a3").datetimepicker({format : "yyyy-mm-dd hh:ii",});});</script></body></html>

c、创建save方法

在ProductController类当中创建save方法

在IProductService接口当中创建save方法

在实现类当中创建save方法调用dao层的save方法

在dao层当中创建

Java代码

@Insert("insert into product(productNum,productName,cityName,departureTime,productPrice,productDesc,productStatus) values(#{productNum},#{productName},#{cityName},#{departureTime},#{productPrice},#{productDesc},#{productStatus})")void save(Product product) throws Exception;

SQL语句

insert into product(productNum,productName,cityName,departureTime,productPrice,productDesc,productStatus) values(#{productNum},#{productName},#{cityName},#{departureTime},#{productPrice},#{productDesc},#{productStatus})

d、添加完成后重新查询数据

修改ProductController当中的save方法

运行项目

clear掉zheng_ssm和web

insert zheng_ssm和web

运行项目,访问http://localhost:8888/zheng_ssm_web

报错

日期没有处理需要处理日期

修改Product

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")

再次提交表单信息

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。