• 大型运输行业实战_day03_2_使用ajax将请求页面与请求数据分离


    1.引入jquery

          1.添加jquery包

          

         2.在要使用jquery的页面中引入jquery

           

            引入jquery后必须检查是否引入正确,这里值得注意的是 springMVC默认情况先会拦截 js文件,所以必须 在web,xml中配置排除对js的拦截

       

    1  <!--排除静态资源的拦截-->
    2 <servlet-mapping>
    3 <servlet-name>default</servlet-name>
    4 <url-pattern>*.js</url-pattern>
    5 </servlet-mapping>

       配置好后重新启动项目,并访问该页面,如果弹出如下提示则配置成功

       

    2.请求页面

           1.请求页面控制层

             

     1     /**
     2      * 获取车票页面
     3      * @param req
     4      * @return
     5      */
     6     @RequestMapping("/page")
     7     public String listPage(HttpServletRequest req){
     8         System.out.println("----listPage--------");
     9         //接收参数
    10         //调用业务方法
    11         return "/WEB-INF/views/list2.jsp";
    12     }

      2.list2.jsp页面

      

     1 <%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
     2 <html>
     3 <head>
     4     <title>车票列表</title>
     5     <%--引入jquery--%>
     6     <script type="text/javascript" src="/static/jquery-2.1.3.min.js"></script>
     7    <%-- 判断是否添加正确
     8       jquey  简写为   $
     9    --%>
    10     <script type="text/javascript">
    11       //  alert($);
    12     </script>
    13 </head>
    14 <body>
    15 <div align="center">
    16     <span id="te"> lfgjhohj</span>
    17     <table id="ticketList" border="1" cellspacing="1">
    18         <tr>
    19             <td>编号</td>
    20             <td>开始车站</td>
    21             <td>到达车站</td>
    22         </tr>
    23         <%--模拟假数据--%>
    24         <tr>
    25             <td>1</td>
    26             <td>北京</td>
    27             <td>成都</td>
    28         </tr>
    29     </table>
    30 </div>
    31 </body>
    32 </html>

      3.重启项目访问该页面

     3.请求数据

            1.编写控制层获取数据

            

     1   /**
     2      * 获取车票数据
     3      */
     4     @RequestMapping("/data")
     5     @ResponseBody  //请求数据必须写这个
     6     public List<Ticket> getData(){
     7         //接收参数
     8         //调用方法
     9         //控制跳转
    10         List<Ticket> list = ticketService.getList();
    11         return list;
    12     }

         2.页面获取数据 与填充数据到table,当页面加载完成后就会执行加载数据的函数,这就实现了请求页面与请求数据的分离

           特别注意:写好后的加载数据的js函数 必须 调用才生效

      

     1 <script type="text/javascript">
     2     //js函数   加载数据
     3     function loadData(){
     4         alert("loadData");
     5         // 发送ajax请求  非常简单  固定模式
     6         var params={};//请求参数
     7         var  url="http://localhost:8080/ticket2/data";//请求地址
     8         jQuery.ajax({
     9             type: 'POST',
    10             contentType: 'application/x-www-form-urlencoded',
    11             url: url,
    12             data: params,
    13             dataType: 'json',
    14             success: function (data) {//后端执行成功后返回的数据在data中
    15                 var html='<tr>'+
    16                         '<td>编号</td>'+
    17                         '<td>开始车站</td>'+
    18                         '<td>到达车站</td>'+
    19                         '</tr>';
    20                 //解析数据到table表中
    21                  for (var i=0;i<data.length;i++){
    22                      //取出一个对象   java里面的内省机制
    23                     var  ticket = data[i];
    24                     var id = ticket.id;
    25                     var startStation=  ticket.startStation;
    26                      var stopStation=  ticket.stopStation;
    27                    html+='<tr>'+
    28                            '<td>'+id+'</td>'+
    29                            '<td>'+startStation+'</td>'+
    30                            '<td>'+stopStation+'</td>'+
    31                            '</tr>';
    32 
    33                  }
    34                 //标签间设定值
    35                 $("#ticketList").html(html);
    36                 //标签间取值
    37                // var th= $("#ticketList").html();d
    38                // alert(" th=" +th);
    39 
    40                 //标签内部 设定值
    41                // $("#userName").val("无极");
    42                  //标签内部取值
    43               // var username = $("#userName").val("无极");
    44             },
    45             error: function (data) {
    46                 alert("失败啦");
    47             }
    48         });
    49     }
    50 
    51     //执行js函数
    52     loadData();
    53 </script>

         

     3.重启项目访问页面

     4.完整的控制层代码  与 jsp 页面

        1.控制层

       

     1 package com.day02.sation.controller;
     2 
     3 import com.day02.sation.model.Ticket;
     4 import com.day02.sation.service.ITicketService;
     5 import org.springframework.beans.factory.annotation.Autowired;
     6 import org.springframework.stereotype.Controller;
     7 import org.springframework.web.bind.annotation.RequestMapping;
     8 import org.springframework.web.bind.annotation.ResponseBody;
     9 
    10 import javax.servlet.http.HttpServletRequest;
    11 import java.util.List;
    12 
    13 /**
    14  * Created by Administrator on 12/27.
    15  */
    16 @Controller
    17 @RequestMapping("/ticket2")
    18 public class Ticket2Controller {
    19     @Autowired
    20     private ITicketService ticketService;
    21 
    22     /**
    23      * 获取车票页面
    24      * @param req
    25      * @return
    26      */
    27     @RequestMapping("/page")
    28     public String listPage(HttpServletRequest req){
    29         System.out.println("----listPage--------");
    30         //接收参数
    31         //调用业务方法
    32         return "/WEB-INF/views/list2.jsp";
    33     }
    34 
    35     /**
    36      * 获取车票数据
    37      */
    38     @RequestMapping("/data")
    39     @ResponseBody  //请求数据必须写这个
    40     public List<Ticket> getData(){
    41         //接收参数
    42         //调用方法
    43         //控制跳转
    44         List<Ticket> list = ticketService.getList();
    45         return list;
    46     }
    47 
    48 
    49 }
    View Code

        2.jsp页面

      

     1 <%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
     2 <html>
     3 <head>
     4     <title>车票列表</title>
     5     <%--引入jquery--%>
     6     <script type="text/javascript" src="/static/jquery-2.1.3.min.js"></script>
     7    <%-- 判断是否添加正确
     8       jquey  简写为   $
     9    --%>
    10     <script type="text/javascript">
    11       //  alert($);
    12     </script>
    13 </head>
    14 <body>
    15 <div align="center">
    16     <span id="te"> lfgjhohj</span>
    17     <table id="ticketList" border="1" cellspacing="1">
    18         <tr>
    19             <td>编号</td>
    20             <td>开始车站</td>
    21             <td>到达车站</td>
    22         </tr>
    23         <%--模拟假数据--%>
    24         <tr>
    25             <td>1</td>
    26             <td>北京</td>
    27             <td>成都</td>
    28         </tr>
    29     </table>
    30 </div>
    31 </body>
    32 <script type="text/javascript">
    33     //js函数   加载数据
    34     function loadData(){
    35         alert("loadData");
    36         // 发送ajax请求  非常简单  固定模式
    37         var params={};//请求参数
    38         var  url="http://localhost:8080/ticket2/data";//请求地址
    39         jQuery.ajax({
    40             type: 'POST',
    41             contentType: 'application/x-www-form-urlencoded',
    42             url: url,
    43             data: params,
    44             dataType: 'json',
    45             success: function (data) {//后端执行成功后返回的数据在data中
    46                 var html='<tr>'+
    47                         '<td>编号</td>'+
    48                         '<td>开始车站</td>'+
    49                         '<td>到达车站</td>'+
    50                         '</tr>';
    51                 //解析数据到table表中
    52                  for (var i=0;i<data.length;i++){
    53                      //取出一个对象   java里面的内省机制
    54                     var  ticket = data[i];
    55                     var id = ticket.id;
    56                     var startStation=  ticket.startStation;
    57                      var stopStation=  ticket.stopStation;
    58                    html+='<tr>'+
    59                            '<td>'+id+'</td>'+
    60                            '<td>'+startStation+'</td>'+
    61                            '<td>'+stopStation+'</td>'+
    62                            '</tr>';
    63 
    64                  }
    65                 //标签间设定值
    66                 $("#ticketList").html(html);
    67                 //标签间取值
    68                // var th= $("#ticketList").html();d
    69                // alert(" th=" +th);
    70 
    71                 //标签内部 设定值
    72                // $("#userName").val("无极");
    73                  //标签内部取值
    74               // var username = $("#userName").val("无极");
    75             },
    76             error: function (data) {
    77                 alert("失败啦");
    78             }
    79         });
    80     }
    81 
    82     //执行js函数
    83     loadData();
    84 </script>
    85 </html>
    View Code
  • 相关阅读:
    AndroidStudio 混淆打包
    android监听键盘
    Emoji字符检查与替换
    自定义Toast样式-两行文本居中显示
    强密码验证的正则表达式
    图片处理之-Bitmap.Config,jpeg压缩与大小
    Android App开之标注切图
    Android基础之CountDownTimer 倒计时类
    Android Handler Leak
    单目标跟踪CVPR 2018 ECO+
  • 原文地址:https://www.cnblogs.com/newAndHui/p/8125972.html
Copyright © 2020-2023  润新知