SpringMVC-Jquery的Ajax【js引用坑】

一、前提

1.新建Jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <title>SysLog-Ajax</title>
</head>
<body>

        <h1>This is system log list page-Ajax</h1>
        <h1>time:<%=new java.util.Date()%></h1>
       <div>
           <table border="1" width="100%" cellpadding="2" cellspacing="0">
               <thead>
                   <tr>
                        <th>id</th>
                        <th>username</th>
                        <th>method</th>
                   </tr>
               </thead>

               <tbody id="tbodyId">
                    <tr>
                        <td colspan="3">数据加载中...</td>
                    </tr>
               </tbody>
           </table>
       </div>
        <script type="text/javascript" src="../bower_components/jquery/dist/jquery.min.js"></script>
<script type="text/javascript">
        $(function(){
            consloe.log("page load complete");
        })
</script>
</body>
</html>

2.controller

//    将查询返回的数据和传递的页面分开
    @RequestMapping("doLogListUI")
    public String doLogListUI(){
//        return "jsp/SysLog-AJAX";
        return "jsp/SysLog-Jquery-AJAX";
    }

向webapp中拷贝常用js文件包
在这里插入图片描述

重点!!!!!!配置webapp下的文件可访问引用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

SpringMVC 中 需要配置 对静态资源文件的访问
方法一,在 spring-servlet.xml 配置文件中加入
<mvc:default-servlet-handler/>
方法二,在 spring-servlet.xml 配置文件中加入
<mvc:resources mapping="/images/**" location="/images/"/> <mvc:resources mapping="/js/**" location="/js/" /> <mvc:resources mapping="/css/**" location="/css/" />

4.修改spring-configs.xml
在这里插入图片描述
5.添加jsp页面内容

<%--<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>--%>
        <script src="../bower_components/jquery/dist/jquery.min.js" type="text/javascript"></script>
      
        <script type="text/javascript">
            $(function(){
                console.log("page load complete")
            })
        </script>

6.访问:http://localhost:8080/ssmday4/log/doLogListUI
7.结果:
在这里插入图片描述

二、继续深入练习

1.完善jsp

<%--页面加载完成加载此方法--%>
        <script type="text/javascript">
            $(function(){
                console.log("page load complete");
                doGetObject();
            })

        //    页面加载完成异步加载日志信息
            function doGetObject(){
                //1.定义请求参数
                var params="pageCurrent=1";
                //2.定义请求url
                var url="doFindPageObject";
                //3.发起异步请求
                $.ajax({
                    data:params,
                    url:url,
                    type:"GET",
                    success:function(result){
                        //ajax请求  请求方式type
                        console.log(result);
                        // doHandleResponseResult(result);
                    }
                });
            }

        </script>

2.访问:http://localhost:8080/ssmday4//log/doLogListUI
结果:会有5s延迟。(Controller中方法的设定Thread.sleep(5000))
在这里插入图片描述

结果是JsonObject。ajax函数底层将服务器返回的jsonString转换成了jsonObject。
Ajax中默认get请求,不写没关系
Ajax里的分号可以省略,但是逗号不可省略

三、进一步完成

错误案例提示:pageCurrent=-1

//    页面加载完成异步加载日志信息
            function doGetObject(){
                //1.定义请求参数
                var params="pageCurrent=-1";     //-1页面是非法错误的
                //2.定义请求url
                var url="doFindPageObject";
                //3.发起异步请求  默认get请求(JQuery构建XmlHttpRequest),不写没关系
                //Ajax里的分号可以省略,但是逗号不可省略
                $.ajax({
                    data:params,
                    url:url,
                    type:"GET",
                    success:function(result){
                        //ajax请求  请求方式type
                        //ajax函数底层将服务器返回的jsonString转换成了jsonObject
                        console.log(result);
                        doHandleResponseResult(result);
                    }
                });
            }   

            //响应处理结果
            function doHandleResponseResult(result) {
                if(result.state==1){
                //    state是我们在JsonResult中自己定义的 1表示OK的
                //     doSetTableBodyRows(result.data.records);
                    
                }else {
                    alert(result.message);
                }
            }

访问:http://localhost:8080/ssmday4/log/doLogListUI
结果:
在这里插入图片描述

四、进一步完成

 //将当前记录追加到tbody位置
            function doSetTableBodyRows(records) {
                //获取tBody对象
                var tBody = $("#tbodyId");
                //清空tBody内容
                tBody.empty();
                //将记录追加到tBody中
                for(var i in records){
                //    2.1创建tr
                    var tr=$("<tr></tr>");
                //    2.2创建tds
                    var tds=doCreatTds(records[i]);
                //    2.3将td追加到tr
                    tr.append(tds);
                //    2.4将tr追加到tBody
                    tBody.append(tr);          
                }

            }

            function doCreatTds(row){
                 var tds=
                     "<td>"+row.id+"</td>"+
                     "<td>"+row.username+"</td>"+
                     "<td>"+row.method+"</td>";
                 return tds;
            }

1.追加:
JavaScript是.appendChild
JQuery是.append

访问:http://localhost:8080/ssmday4/log/doLogListUI
结果:
在这里插入图片描述
五、尾声

所有jsp页面后期都要改为html 因为jsp
1.翻译成java
2.编译为.class
3.执行代码
4.返回对应html 会影响性能

猜你喜欢

转载自blog.csdn.net/qq_31416771/article/details/88450624