• 第二周项目功能实现


    本周完成项目情况:

    1.前台功能模块:

      a.票务查询

      b.车票销售

      c.改签

      d.退票

    2.后台功能模块

      a.票务管理

      b.信息发布

      c.订单统计

      d.销售情况查询

    二、核心源码:

    实体类:com.hp.model

     1 package com.hp.model;
     2 
     3 public class Ticket {
     4     private Integer tid;//编号
     5     private String ticketNo;//车次
     6     private String startAddress;//出发地
     7     private String endAddress;//目的地
     8     private Integer price;//价格
     9     private String time;//时间
    10     private String manned;//车载人数
    11     private Integer ticketCount;//余票
    12     private String delstatus;
    13     public Integer getTid() {
    14         return tid;
    15     }
    16     public void setTid(Integer tid) {
    17         this.tid = tid;
    18     }
    19     public String getTicketNo() {
    20         return ticketNo;
    21     }
    22     public void setTicketNo(String ticketNo) {
    23         this.ticketNo = ticketNo;
    24     }
    25     public String getStartAddress() {
    26         return startAddress;
    27     }
    28     public void setStartAddress(String startAddress) {
    29         this.startAddress = startAddress;
    30     }
    31     public String getEndAddress() {
    32         return endAddress;
    33     }
    34     public void setEndAddress(String endAddress) {
    35         this.endAddress = endAddress;
    36     }
    37     public Integer getPrice() {
    38         return price;
    39     }
    40     public void setPrice(Integer price) {
    41         this.price = price;
    42     }
    43     public String getTime() {
    44         return time;
    45     }
    46     public void setTime(String time) {
    47         this.time = time;
    48     }
    49     
    50     
    51     public String getManned() {
    52         return manned;
    53     }
    54     public void setManned(String manned) {
    55         this.manned = manned;
    56     }
    57     public Integer getTicketCount() {
    58         return ticketCount;
    59     }
    60     public void setTicketCount(Integer ticketCount) {
    61         this.ticketCount = ticketCount;
    62     }
    63     public String getDelstatus() {
    64         return delstatus;
    65     }
    66     public void setDelstatus(String delstatus) {
    67         this.delstatus = delstatus;
    68     }
    69     
    70     
    71 }
    Ticket
     1 package com.hp.model;
     2 
     3 import java.util.Date;
     4 
     5 public class Order {
     6     private Integer orderId;
     7     private Date orderTime;//订单时间
     8     private String travleTime;//乘车日期
     9     private Userinfo userinfo;//用户
    10     private Ticket ticket;//车票
    11     private String delstatus;
    12     private Integer tcount;
    13     
    14     
    15     public Integer getTcount() {
    16         return tcount;
    17     }
    18     public void setTcount(Integer tcount) {
    19         this.tcount = tcount;
    20     }
    21     public Integer getOrderId() {
    22         return orderId;
    23     }
    24     public void setOrderId(Integer orderId) {
    25         this.orderId = orderId;
    26     }
    27     
    28     public Date getOrderTime() {
    29         return orderTime;
    30     }
    31     public void setOrderTime(Date orderTime) {
    32         this.orderTime = orderTime;
    33     }
    34     
    35     public String getTravleTime() {
    36         return travleTime;
    37     }
    38     public void setTravleTime(String travleTime) {
    39         this.travleTime = travleTime;
    40     }
    41     public Userinfo getUserinfo() {
    42         return userinfo;
    43     }
    44     public void setUserinfo(Userinfo userinfo) {
    45         this.userinfo = userinfo;
    46     }
    47     public Ticket getTicket() {
    48         return ticket;
    49     }
    50     public void setTicket(Ticket ticket) {
    51         this.ticket = ticket;
    52     }
    53     public String getDelstatus() {
    54         return delstatus;
    55     }
    56     public void setDelstatus(String delstatus) {
    57         this.delstatus = delstatus;
    58     }
    59     
    60     
    61 
    62 }
    Order

    Dao接口:

     1 package com.hp.dao;
     2 
     3 import java.util.List;
     4 
     5 import org.apache.ibatis.annotations.Param;
     6 
     7 import com.hp.model.Ticket;
     8 
     9 public interface TicketDao {
    10     
    11     //根据起点和终点查询
    12     List<Ticket> findByAddress(@Param("startAddress")String startAddress,@Param("endAddress")String endAddress );
    13     //查询所有车票
    14     List<Ticket> selectAll();
    15     //添加车票信息
    16     Integer addTicket(Ticket ticket);
    17     //删除车票信息
    18     Integer deleteTicket(Integer tid);
    19     //修改车票信息
    20     Integer updateTicket(Ticket ticket);
    21     //根据id查询车票信息
    22     Ticket findTicketById(Integer tid);
    23 }
    TicketDao
     1 package com.hp.dao;
     2 
     3 import java.util.List;
     4 
     5 import org.apache.ibatis.annotations.Param;
     6 
     7 import com.hp.model.Order;
     8 
     9 public interface OrderDao {
    10     
    11     //添加订单
    12     Integer addOrder(Order order);
    13     //查询当前用户下的所有订单
    14     List<Order> findAllOrders(@Param(value = "userId")Integer userId);
    15     //根据车票编号查找订单
    16     Order findOrderById(Order order);
    17     //删除订单
    18     Integer deleteOrder(Integer orderId);
    19     //修改订单
    20     Integer updateOrder(Order order);
    21     //统计订单
    22     List<Order> orderCount();
    23 }
    OrderDao

    Mapper映射文件:

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE mapper
     3     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     4     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     5 
     6 <mapper namespace="com.hp.dao.TicketDao">
     7      
     8      <select id="findByAddress" resultType="com.hp.model.Ticket">
     9          select * from ticket where startAddress=#{startAddress} and endAddress=#{endAddress}
    10      </select>
    11      <select id="selectAll" resultType="com.hp.model.Ticket">
    12          select * from ticket where delstatus=1
    13      </select>
    14      <select id="findTicketById" resultType="com.hp.model.Ticket">
    15          select * from ticket where tid=#{tid} and delstatus=1
    16      </select>
    17      <insert id="addTicket" parameterType="com.hp.model.Ticket">
    18          insert into ticket(ticketNo,startAddress,endAddress,price,time,manned,ticketCount,delstatus)
    19          values(#{ticketNo},#{startAddress},#{endAddress},#{price},#{time},#{manned},#{ticketCount},1)
    20      </insert>
    21      <update id="deleteTicket" >
    22          update ticket set delstatus=0 where tid=#{tid}
    23      </update>
    24      <update id="updateTicket" >
    25          update ticket set
    26              ticketNo=#{ticketNo},
    27               startAddress=#{startAddress},
    28               endAddress=#{endAddress},
    29               price=#{price},
    30               time=#{time},
    31               manned=#{manned},
    32               ticketCount=#{ticketCount}
    33          where tid=#{tid} and delstatus=1
    34      </update>
    35      
    36      
    37 </mapper>
    TicketDaoMapper.xml
     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE mapper
     3     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     4     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     5 
     6 <mapper namespace="com.hp.dao.OrderDao">
     7      <resultMap type="com.hp.model.Order" id="orderMap">
     8          <id property="orderId" column="orderId" />
     9         <result property="orderTime" column="orderTime" javaType="java.util.Date"/>
    10         <result property="travleTime" column="travleTime"/>
    11         <result property="delstatus" column="delstatus" />
    12         <result property="tcount" column="tcount" />
    13      <association property="userinfo" javaType="com.hp.model.Userinfo">
    14           <id property="userId" column="userId" />
    15         <result property="uname" column="uname" />
    16         <result property="upass" column="upass" />
    17         <result property="urealname" column="urealname" />
    18         <result property="tel" column="tel" />
    19         <result property="cardId" column="cardId" />
    20         <result property="type" column="type" />
    21         <result property="deleteStatus" column="deleteStatus" />
    22      </association>
    23      <association property="ticket" javaType="com.hp.model.Ticket">
    24          <id property="tid" column="tid"/>
    25          <result property="ticketNo" column="ticketNo" />
    26         <result property="startAddress" column="startAddress" />
    27         <result property="endAddress" column="endAddress" />
    28         <result property="price" column="price" />
    29         <result property="time" column="time" />
    30         <result property="manned" column="manned" />
    31         <result property="ticketCount" column="ticketCount" />
    32         <result property="delstatus" column="delstatus" />
    33      </association>
    34      </resultMap>
    35      
    36      
    37      <select id="findAllOrders" resultType="com.hp.model.Order" resultMap="orderMap">
    38          select * from torder o 
    39          inner join userinfo u
    40          inner join ticket t
    41          where o.userId =u.userId and o.ticketId=t.tid 
    42          and o.delstatus=1 and u.deletestatus=1 and t.delstatus=1
    43          <if test="userId!=null and userId!=''">
    44              and o.userId=#{userId}
    45          </if>
    46      </select>
    47      <select id="orderCount"  resultMap="orderMap">
    48        select count(*) tcount,t.*,o.* from torder  o
    49         inner join ticket t
    50         where o.delstatus=1 and t.delstatus and o.ticketId=t.tid
    51         group by o.ticketId
    52      </select>
    53      
    54      
    55      
    56      <insert id="addOrder" parameterType="com.hp.model.Order">
    57          insert into torder (ticketId,userId,orderTime,travleTime,delstatus) 
    58          values(#{ticket.tid},#{userinfo.userId},now(),#{travleTime},1)
    59      </insert>
    60      <select id="findOrderById" parameterType="com.hp.model.Order" resultType="com.hp.model.Order">
    61          select * from torder where ticketId=#{ticket.tid} and travleTime=#{travleTime} and delstatus=1
    62      </select>
    63      <update id="deleteOrder">
    64          update torder set delstatus=0 where orderId=#{orderId}
    65      </update>
    66      <update id="updateOrder" parameterType="com.hp.model.Order">
    67          update torder set ticketId=#{ticket.tid},orderTime=now(),travleTime=#{travleTime}
    68          where orderId=#{orderId} and delstatus=1
    69      </update>
    70      
    71 </mapper>
    OrderDaoMapper.xml

    业务层Service:

     1 package com.hp.service;
     2 
     3 import java.util.List;
     4 
     5 import org.springframework.beans.factory.annotation.Autowired;
     6 import org.springframework.stereotype.Service;
     7 
     8 import com.hp.dao.TicketDao;
     9 import com.hp.model.Ticket;
    10 @Service
    11 public class TicketServiceImpl implements TicketService {
    12     @Autowired
    13     private TicketDao ticketDao;
    14 
    15     @Override
    16     public List<Ticket> findByAddress(String startAddress, String endAddress) {
    17         return ticketDao.findByAddress(startAddress, endAddress);
    18     }
    19 
    20     @Override
    21     public List<Ticket> selectAll() {
    22         return ticketDao.selectAll();
    23     }
    24 
    25     @Override
    26     public Integer addTicket(Ticket ticket) {
    27         return ticketDao.addTicket(ticket);
    28     }
    29 
    30     @Override
    31     public Integer deleteTicket(Integer tid) {
    32         return ticketDao.deleteTicket(tid);
    33     }
    34 
    35     @Override
    36     public Integer updateTicket(Ticket ticket) {
    37         return ticketDao.updateTicket(ticket);
    38     }
    39 
    40     @Override
    41     public Ticket findTicketById(Integer tid) {
    42         return ticketDao.findTicketById(tid);
    43     }
    44 
    45 }
    TicketServiceImpl
     1 package com.hp.service;
     2 
     3 import java.util.List;
     4 
     5 import org.springframework.beans.factory.annotation.Autowired;
     6 import org.springframework.stereotype.Service;
     7 
     8 import com.hp.dao.OrderDao;
     9 import com.hp.model.Order;
    10 
    11 @Service
    12 public class OrderServiceImpl implements OrderService {
    13     @Autowired
    14     private OrderDao orderDao;
    15 
    16     @Override
    17     public Integer addOrder(Order order) {
    18         return orderDao.addOrder(order);
    19     }
    20 
    21     @Override
    22     public List<Order> findAllOrders(Integer userId) {
    23         return orderDao.findAllOrders(userId);
    24     }
    25 
    26     @Override
    27     public Order findOrderById(Order order) {
    28         return orderDao.findOrderById(order);
    29     }
    30 
    31     @Override
    32     public Integer deleteOrder(Integer userId) {
    33         return orderDao.deleteOrder(userId);
    34     }
    35 
    36     @Override
    37     public Integer updateOrder(Order order) {
    38         return orderDao.updateOrder(order);
    39     }
    40 
    41     @Override
    42     public List<Order> orderCount() {
    43         return orderDao.orderCount();
    44     }
    45 
    46 }
    OrderServiceImpl

    控制层 Controller

     1 package com.hp.controller;
     2 
     3 import java.util.List;
     4 
     5 import javax.servlet.http.HttpSession;
     6 
     7 import org.springframework.beans.factory.annotation.Autowired;
     8 import org.springframework.stereotype.Controller;
     9 import org.springframework.web.bind.annotation.RequestMapping;
    10 
    11 import com.hp.model.Ticket;
    12 import com.hp.service.TicketServiceImpl;
    13 
    14 @Controller
    15 public class TicketController {
    16     @Autowired
    17     private TicketServiceImpl ticketService;
    18     //前台根据起始站和终点站查询
    19     @RequestMapping(value="/findByAddress",produces="text/plain;charset=utf-8")
    20     public String findByAddress(HttpSession session,String startAddress,String  endAddress){
    21      List<Ticket> list = ticketService.findByAddress(startAddress, endAddress);
    22         if (list.size()>0) {
    23             session.setAttribute("ticketList", list);
    24             return "ticketAll.jsp";
    25         }
    26         return "redirect:/selectAllTicket?opr=qticket";
    27     }
    28     //前后台查询所有票务信息
    29     @RequestMapping(value="/selectAllTicket",produces="text/plain;charset=utf-8")
    30     public String selectAllTicket(HttpSession session,String opr){
    31      List<Ticket> list = ticketService.selectAll();
    32         if (list.size()>0) {
    33             session.setAttribute("ticketList", list);
    34             if(opr.equals("qticket")){
    35                 return "ticketAll.jsp";
    36             }else{
    37                 return "adminTicket.jsp";
    38             }
    39             
    40         }
    41         return null;
    42     }
    43     //后台添加票务信息
    44     @RequestMapping(value="/addTicket",produces="text/plain;charset=utf-8")
    45     public String addTicket(Ticket ticket){
    46         Integer addTicket = ticketService.addTicket(ticket);
    47         if (addTicket>0) {
    48             return "redirect:/selectAllTicket?opr=aticket";
    49         }
    50         return "addTicket.jsp";
    51     }
    52     
    53     //后台删除票务信息
    54     @RequestMapping(value="/deleteTicket",produces="text/plain;charset=utf-8")
    55     public String deleteTicket(Integer tid){
    56         Integer deleteTicket = ticketService.deleteTicket(tid);
    57         if (deleteTicket>0) {
    58             return "redirect:/selectAllTicket?opr=aticket";
    59         }
    60         return "adminTicket.jsp";
    61     }
    62     //后台根据id查询票务信息
    63     @RequestMapping(value="/findTicketById",produces="text/plain;charset=utf-8")
    64     public String findTicketById(HttpSession session,Integer tid,String opr){
    65         Ticket findTicketById = ticketService.findTicketById(tid);
    66         if (findTicketById!=null) {
    67             session.setAttribute("findTickes", findTicketById);
    68             if (opr.equals("at")) {
    69                 return "updateTicket.jsp";
    70             }else{
    71                 return "orderTicket.jsp";
    72             }
    73             
    74         }
    75         return "adminTicket.jsp";
    76     }
    77      //后台修改票务信息
    78     @RequestMapping(value="/updateTicket",produces="text/plain;charset=utf-8")
    79     public String updateTicket(Ticket ticket){
    80         Integer updateTicket = ticketService.updateTicket(ticket);
    81         if (updateTicket>0) {
    82             return "redirect:/selectAllTicket?opr=aticket";
    83         }
    84         return "adminTicket.jsp";
    85     }
    86 }
    TicketController
      1 package com.hp.controller;
      2 
      3 import java.util.List;
      4 
      5 import javax.servlet.http.HttpSession;
      6 
      7 import org.springframework.beans.factory.annotation.Autowired;
      8 import org.springframework.stereotype.Controller;
      9 import org.springframework.web.bind.annotation.RequestMapping;
     10 
     11 import com.hp.model.Order;
     12 import com.hp.model.Ticket;
     13 import com.hp.model.Userinfo;
     14 import com.hp.service.OrderService;
     15 import com.hp.service.TicketServiceImpl;
     16 
     17 @Controller
     18 public class OrderController {
     19     @Autowired
     20     private OrderService orderService;
     21     @Autowired
     22     private TicketServiceImpl ticketService;
     23        //添加订单
     24         @RequestMapping(value="/addOrder",produces="text/plain;charset=utf-8")
     25         public String addOrder(Order order){
     26             Order findOrderById = orderService.findOrderById(order);
     27             if(findOrderById == null){
     28                 Integer addOrder = orderService.addOrder(order);
     29                 Ticket ticket = ticketService.findTicketById(order.getTicket().getTid());
     30                 ticket.setTicketCount(ticket.getTicketCount()-1);
     31                 Integer updateTicket = ticketService.updateTicket(ticket);
     32                 if(addOrder > 0 && updateTicket>0){
     33                     return "redirect:/findAllOrders";
     34                 }
     35             }
     36             
     37             return "orderTicket.jsp";
     38         }
     39         //查询当前用户下的订单
     40         @RequestMapping(value="/findAllOrders",produces="text/plain;charset=utf-8")
     41         public String findAllOrdersByUserId(HttpSession session){
     42             Userinfo userinfo = (Userinfo)session.getAttribute("user");
     43             List<Order> findAllOrders = orderService.findAllOrders(userinfo.getUserId());
     44             if(findAllOrders != null){
     45                 session.setAttribute("orderList", findAllOrders);
     46                 return "searchOrder.jsp";
     47             }
     48             return "orderTicket.jsp";
     49         }
     50         //管理员查询所有订单信息
     51         @RequestMapping(value="/adminfindAllOrders",produces="text/plain;charset=utf-8")
     52         public String findAllOrders(HttpSession session){
     53             List<Order> findAllOrders = orderService.findAllOrders(null);
     54             if(findAllOrders != null){
     55                 session.setAttribute("ordersList", findAllOrders);
     56                 return "adminOrderList.jsp";
     57             }
     58             return "admin.jsp";
     59         }
     60         //退票
     61         @RequestMapping(value="/deleteOrder",produces="text/plain;charset=utf-8")
     62         public String deleteOrder(Order order){
     63             Integer deleteOrder = orderService.deleteOrder(order.getOrderId());//删除订单
     64             Ticket ticket = ticketService.findTicketById(order.getTicket().getTid());
     65             ticket.setTicketCount(ticket.getTicketCount()+1);
     66             Integer updateTicket = ticketService.updateTicket(ticket);
     67             if (deleteOrder>0 && updateTicket>0) {
     68                 
     69                 return "redirect:/findAllOrders?userId="+order.getUserinfo().getUserId();
     70             }
     71             return  "orderTicket.jsp";
     72         }
     73         
     74         //跳转改签页面
     75         @RequestMapping(value="/findAllTickets",produces="text/plain;charset=utf-8")
     76         public String findAllTickets(HttpSession session,Order order){
     77              List<Ticket> list = ticketService.selectAll();
     78                 if (list.size()>0) {
     79                     session.setAttribute("ord", order);
     80                     session.setAttribute("ticketsList", list);
     81                         return "updateOrder.jsp";
     82                     }
     83                 return null;
     84             
     85         }
     86         //改签
     87         @RequestMapping(value="/updateOrder",produces="text/plain;charset=utf-8")
     88         public String updateOrder(HttpSession session,Order order){
     89              Integer updateOrder = orderService.updateOrder(order);
     90              Order ord = (Order)session.getAttribute("ord");//改签前
     91              Ticket ticket = ticketService.findTicketById(ord.getTicket().getTid());
     92              ticket.setTicketCount(ticket.getTicketCount()+1);
     93              Integer updateTicket = ticketService.updateTicket(ticket);
     94              //改签后
     95              Ticket tck = ticketService.findTicketById(order.getTicket().getTid());
     96              tck.setTicketCount(tck.getTicketCount()-1);
     97              Integer updateTicket2 = ticketService.updateTicket(tck);
     98              if (updateOrder>0 &&updateTicket>0 && updateTicket2>0) {
     99                     return "redirect:/findAllOrders";
    100                 }
    101              return "updateOrder.jsp";
    102             
    103         }
    104         
    105         //统计订单
    106         @RequestMapping(value="/OrderCount",produces="text/plain;charset=utf-8")
    107         public String OrderCount(HttpSession session){
    108             List<Order> orderCount = orderService.orderCount();
    109             if (orderCount!=null) {
    110                 session.setAttribute("orderCoun", orderCount);
    111                 return "adminOrderCount.jsp";
    112             }
    113             return "main.jsp";
    114         }
    115         
    116         
    117 }
    OrderController

      1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
      2 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
      3 <!DOCTYPE html >
      4 <html>
      5 <head>
      6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      7 <title>主页面</title>
      8 <link href="images/style.css" rel="stylesheet" type="text/css" />
      9 <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
     10 <script type="text/javascript" src="js/jquery.js"></script>
     11 <script type="text/javascript" src="js/bootstrap.js"></script>
     12 <style type="text/css">
     13 body {
     14     background:#FFF
     15 }
     16 </style>
     17 </head>
     18 <script type="text/javascript">
     19     function ding(){
     20         alert("游客,请登录");
     21         window.open("qlogin.jsp","_parent");
     22     }
     23     function order(tid){
     24         window.location.href="findTicketById?opr=qt&tid="+tid;
     25     }
     26 </script>
     27 <body>
     28 <div id="contentWrap">
     29 <div class="pageTitle"></div>
     30 <div class="pageColumn">
     31    <div class="container">
     32     <div class="row clearfix">
     33         <div class="col-md-12 column">
     34             <form class="form-inline" role="form" action="findByAddress" method="post">
     35                 <div class="form-group">
     36                     <label class="sr-only" for="name">名称</label>
     37                     <input type="text" class="form-control" id="start"  name="startAddress" 
     38                            placeholder="请输入出发地">
     39                 </div>
     40                 <div class="form-group">
     41                     <label class="sr-only" for="name">名称</label>
     42                     <input type="text" class="form-control" id="end" name="endAddress"
     43                            placeholder="请输入目的地">
     44                 </div>
     45                 
     46                 <button type="submit" class="btn btn-default">查询</button>
     47             </form>
     48                     
     49         
     50             <table class="table table-bordered table-hover" style="margin-top: 10px">
     51                 <thead>
     52                     <tr>
     53                         <th>
     54                             车次编号
     55                         </th>
     56                         <th>
     57                             起点站
     58                         </th>
     59                         <th>
     60                             终点站
     61                         </th>
     62                         <th>
     63                             时间
     64                         </th>
     65                         <th>
     66                             价格
     67                         </th>
     68                         <th>
     69                             车载人数
     70                         </th>
     71                         <th>
     72                             余票
     73                         </th>
     74                         <th>
     75                             操作
     76                         </th>
     77                     </tr>
     78                 </thead>
     79                 <tbody>
     80                  <c:forEach var="ticket" items="${ticketList }" >
     81                      <tr>
     82                         <td>${ticket.ticketNo}</td>
     83                         <td>${ticket.startAddress }</td>
     84                         <td>${ticket.endAddress }</td>
     85                         <td>${ticket.time }</td>
     86                         <td>¥${ticket.price }</td>
     87                         <td>${ticket.manned } 人</td>
     88                         <td>${ticket.ticketCount } 张</td>
     89                         <td>
     90                             <c:if test="${not empty user.uname }">
     91                                  <c:if test="${ticket.ticketCount>0}">
     92                                     <input type="button" onclick="order(${ticket.tid})"   value="订票" style=" 50px;height:30px;background:#9BD8F7;color: red;"/>  
     93                                  </c:if>
     94                                   <c:if test="${ticket.ticketCount == 0}">
     95                                     <input type="button" disabled="disabled"  value="订票" style=" 50px;height:30px;background:gray;color: white;"/>  
     96                                  </c:if>
     97                         </c:if>
     98                         <c:if test="${empty user.uname }">
     99                                 <input type="button" onclick="ding()"   value="订票" style=" 50px;height:30px;background:#9BD8F7;color: red;"/>  
    100                         </c:if>
    101                         </td>
    102                      </tr>
    103                  </c:forEach>
    104                     
    105                 </tbody>
    106             </table>
    107         </div>
    108     </div>
    109 </div>
    110 </div></div>
    111 </body>
    112 </html>
    ticketAll.jsp

     1 <%@ page language="java" contentType="text/html; charset=utf-8"
     2     pageEncoding="utf-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     4 <html xmlns="http://www.w3.org/1999/xhtml">
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     7 <title>添加票务信息</title>
     8 <link href="css/style.css" rel="stylesheet" type="text/css" />
     9 </head>
    10 
    11 <body>
    12   <form action="addTicket" method="post">
    13     <div class="place">
    14     <span>位置:</span>
    15     <ul class="placeul">
    16     <li><a href="#">票务管理</a></li>
    17     <li><a href="#">添加票务信息</a></li>
    18     </ul>
    19     </div>
    20     
    21     <div class="formbody">
    22     
    23     <div class="formtitle"><span>添加票务信息</span></div>
    24     
    25     <ul class="forminfo">
    26     <li><label>车次编号</label><input name="ticketNo" type="text" class="dfinput" /></li>
    27     <li><label>起点站</label><input name="startAddress" type="text" class="dfinput" /></li>
    28     <li><label>终点站</label><cite><input name="endAddress" type="text" value="" class="dfinput"/></cite></li>
    29     <li><label>运行时间</label><input name="time" type="text" class="dfinput" value="" /></li>
    30     <li><label>价格</label><input name="price" type="text" class="dfinput" value="" /></li>
    31     <li><label>车载人数</label><input name="manned" type="text" class="dfinput" value="" /></li>
    32     <li><label>余票</label><input name="ticketCount" type="text" class="dfinput" value="" /></li>
    33     <li><label>&nbsp;</label><input name="" type="submit" class="btn" value="确认保存"/></li>
    34     </ul>
    35     
    36     
    37     </div>
    38 
    39 </form>
    40 </body>
    41 
    42 </html>
    addTicket.jsp

     

     

     

    退票

     

     后台界面

     

     

      1 <%@ page language="java" contentType="text/html; charset=utf-8"
      2     pageEncoding="utf-8"%>
      3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
      4 <!DOCTYPE html >
      5 <html>
      6 <head>
      7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      8 <title>票务管理</title>
      9 <link href="css/style.css" rel="stylesheet" type="text/css" />
     10 <script type="text/javascript" src="js/jquery.js"></script>
     11 
     12 <script type="text/javascript">
     13 $(document).ready(function(){
     14   $(".click").click(function(){
     15   $(".tip").fadeIn(200);
     16   });
     17   
     18   $(".tiptop a").click(function(){
     19   $(".tip").fadeOut(200);
     20 });
     21 
     22   $(".sure").click(function(){
     23   $(".tip").fadeOut(100);
     24 });
     25 
     26   $(".cancel").click(function(){
     27   $(".tip").fadeOut(100);
     28 });
     29 
     30 });
     31 
     32 
     33     function del(tid){
     34         if(confirm("确认删除?")){
     35             window.location.href="deleteTicket?tid="+tid;
     36         }
     37     }
     38     function update(tid){
     39         window.location.href="findTicketById?opr=at&tid="+tid;
     40     }
     41 
     42 
     43 </script>
     44 
     45 
     46 </head>
     47 
     48 
     49 <body>
     50 
     51     <div class="place">
     52     <span>位置:</span>
     53     <ul class="placeul">
     54     <li><a href="#">首页</a></li>
     55     <li><a href="#">票务管理</a></li>
     56     <li><a href="#">查询所有票务信息</a></li>
     57     </ul>
     58     </div>
     59     
     60     <div class="rightinfo">
     61     <div class="formtitle"><span>票务信息</span></div>
     62     <table class="tablelist">
     63         <thead>
     64         <tr>
     65         <th><input name="" type="checkbox" value="" checked="checked"/></th>
     66         <th>车次编号<i class="sort"><img src="images/px.gif" /></i></th>
     67         <th>起点站</th>
     68         <th>终点站</th>
     69         <th>运行时间</th>
     70         <th>价格</th>
     71         <th>车载人数</th>
     72         <th>余票</th>
     73         <th>操作</th>
     74         </tr>
     75         </thead>
     76         <tbody>
     77         <c:forEach var="ticket" items="${ticketList }">
     78             <tr>
     79             <td><input name="" type="checkbox" value="" /></td>
     80             <td>${ticket.ticketNo }</td>
     81             <td>${ticket.startAddress }</td>
     82             <td>${ticket.endAddress }</td>
     83             <td>${ticket.time }</td>
     84             <td>¥${ticket.price }</td>
     85             <td>${ticket.manned } 人</td>
     86             <td>${ticket.ticketCount } 张</td>
     87             <td><a href="javascript:;" class="tablelink" onclick="update(${ticket.tid})" >编辑</a>
     88                  <a href="javascript:;" class="tablelink" onclick="del(${ticket.tid})"> 删除</a></td>
     89             </tr> 
     90         </c:forEach>
     91         </tbody>
     92     </table>
     93     
     94    
     95     <div class="pagin">
     96         <ul class="paginList">
     97         <li class="paginItem"><a href="javascript:;"><span class="pagepre"></span></a></li>
     98         <li class="paginItem"><a href="javascript:;">1</a></li>
     99         <li class="paginItem current"><a href="javascript:;">2</a></li>
    100         <li class="paginItem"><a href="javascript:;">3</a></li>
    101         <li class="paginItem"><a href="javascript:;">4</a></li>
    102         <li class="paginItem"><a href="javascript:;">5</a></li>
    103         <li class="paginItem more"><a href="javascript:;">...</a></li>
    104         <li class="paginItem"><a href="javascript:;">10</a></li>
    105         <li class="paginItem"><a href="javascript:;"><span class="pagenxt"></span></a></li>
    106         </ul>
    107     </div>
    108     
    109     
    110     <div class="tip">
    111         <div class="tiptop"><span>提示信息</span><a></a></div>
    112         
    113       <div class="tipinfo">
    114         <span><img src="images/ticon.png" /></span>
    115         <div class="tipright">
    116         <p>是否确认对信息的修改 ?</p>
    117         <cite>如果是请点击确定按钮 ,否则请点取消。</cite>
    118         </div>
    119         </div>
    120         
    121         <div class="tipbtn">
    122         <input name="" type="button"  class="sure" value="确定" />&nbsp;
    123         <input name="" type="button"  class="cancel" value="取消" />
    124         </div>
    125     
    126     </div>
    127     
    128     
    129     
    130     
    131     </div>
    132     
    133     <script type="text/javascript">
    134     $('.tablelist tbody tr:odd').addClass('odd');
    135     </script>
    136 
    137 </body>
    138 
    139 </html>
    adminTicket.jsp

    三、遇到的问题:

      a.对mybatis返回数据应生成对象的时候,每一条记录都对应了一个对象,这就造成了,对象中的list属性中只有一个对象。也就是一对多变成了多条一对一。造成这种现象的原因mysql查询的结果中,返回的列没有用于区分权限的id

      b.jsp中Property 'XXX' not found on type java.lang.String解决方案

    四、解决办法

      a.在查询的mysql语句中,加入查询id即可。

      b.使用JSTL中的foreach标签并用EL表达式读取items时,EL表达式的后大括号与引号之间有空格,使用JSTL中的foreach标签,并且items没有使用EL表达式读取域中的内容,指令标签错误.

    五、燃尽图

  • 相关阅读:
    According to TLD, tag fmt:formatDate must be empty, but is not 问题的解决
    README.md 编写
    查阅Springboot官方文档方式----------------Springboot2.0.2最新稳定版
    IntelliJ IDEA 2017版 Spring5 java.lang.NoSuchMethodError: org.springframework.boot.SpringApplication.<init>([Ljava/lang/Object;)V
    IntelliJ IDEA 2017版 SpringBoot测试类编写
    IntelliJ IDEA 2017版 Spring5 的RunnableFactoryBean配置
    fastjson 错误解决方案详情 com.alibaba.fastjson.JSONException: syntax error, expect {, actual EOF, pos 1410
    详细解读 :java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed,Java报错之Connection is read-only.
    Netty学习第六节实例一步学习
    Netty学习第五节实例进一步学习
  • 原文地址:https://www.cnblogs.com/gracefully/p/13364851.html
Copyright © 2020-2023  润新知