背景:

做项目时涉及到页面。当我打算在controller中传一个list到页面,然后通过<c:foreach>循环遍历出来时,同事说:你这样每次都要刷新。这都是几百年前使用的技术了。你用post实现异步载入数据。然后就......

ResultUtil.java 工具类:

package com.sgcc.uds.fs.config.web.util;

import java.util.HashMap;
import java.util.Map; import net.sf.json.JSONObject; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; public class ResultUtil {
/** 日志 */
private static Log logger = LogFactory.getLog(ResultUtil.class);
// 保存json对象
private Map<String, Object> results;
// 消息"key
public static final String MSG = "msg";
// 成功标识 key
public static final String SUCCESS = "success";
// 单对"key
public static final String OBJ = "obj";
// 列表对象 key
public static final String ORWS = "rows";
// 总计"key
public static final String TOTAL = "total";
// 状" key
public static final String STATUS = "status"; public ResultUtil() {
this.results = new HashMap<String, Object>();
this.results.put(SUCCESS, true);
} public Map<String, Object> getResult() {
return this.results;
} public void setResult(Map<String, Object> set) {
this.results = set;
} public boolean getSuccess() {
return (Boolean) results.get(SUCCESS);
} public String getMessage() {
return (String) results.get(MSG);
} public void setRows(Object list) {
this.results.put(ORWS, list);
} public void setTotal(Integer total) {
this.results.put(TOTAL, total);
} /**
* 依据" 自己定义加入属"
*
* @param key
* 属"标识
* @param value
*/
public void setProperty(String key, Object value) {
try {
this.results.put(key, value);
} catch (RuntimeException e) {
logger.error("-->>设置key为:" + key + "值为" + value + " Json时出错:", e);
}
} /**
* 设置状"信息
*
* @param status
*/
public void setStatus(String status) {
setProperty(STATUS, status);
} /**
* 设置成功标志 " 用于程序运行是否正常
*
* @param success
* 成功标识
*/
public void setSuccess(boolean success) {
setProperty(SUCCESS, success);
} /**
* 设置消息
*
* @param msg
* 消息"
*/
public void setMsg(String msg) {
setProperty(MSG, msg);
} /**
* 设置总计"
*
* @param size
*/
public void setTotal(int size) {
setProperty(TOTAL, size);
} public void setSize(int size) {
setProperty(TOTAL, size);
} /**
* 加入对象列表 数据为json格式
*
* @param data
* 对象列表json格式
*/
public void setData(String data) {
setProperty(ORWS, data);
} /**
* 加入对象
*
* @param obj
* 对象
*/
public void setObject(Object obj) {
setProperty(OBJ, obj);
} /**
* 返回json格式
*/
public String toJSONString() {
JSONObject obj = new JSONObject();
obj.put("data", this.results);
return obj.toString();
} public static void main(String aregs[]) {
ResultUtil util = new ResultUtil();
System.out.println(util.toString());
} }

controller类方法:

/**
* @return
* 载入文件信息
*/
@RequestMapping("/file/queryFileInfo")
@ResponseBody
public Map<String, Object> queryFileInfo()
{
ResultUtil result =new ResultUtil(); List<File> fileList =getFileInfo(); if(fileList !=null)
{
result.setRows(fileList);
result.setSize(10);
result.setMsg("查询成功! ");
}else
{
result.setSuccess(false);
result.setMsg("载入数据失败!");
} return result.getResult();
}

jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
request.setAttribute("home", path);
%>
<!doctype html>
<html lang="zh-CN">
<head>
<title>首页</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="renderer" content="webkit"> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0"> <link rel="stylesheet" href="${home}/css/bootstrap.min.css" type="text/css"></link>
<link rel="stylesheet" href="${home}/css/allStyle.css" type="text/css"></link>
<!--[if lte IE 9]>
<script type="text/javascript" src="${home}/js/respond.min.js"></script>
<script type="text/javascript" src="${home}/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript">
var home="${home}";
</script> </head>
<body> <h2 class="sub-header">文件信息列表</h2>
<div class="addbtn" > <button class="btn btn-warning" data-toggle="modal"
data-target="#addModal">添加文件信息</button>
</div> <!-- 信息列表 -->
<div class="table-responsive">
<table class="table table-striped table-bordered table-hover" id="userListTable">
<thead>
<tr>
<th>权限文件</th>
<th>数量</th>
<th>每日新增</th>
<th>操作</th>
</tr>
</thead>
<tbody> </tbody>
</table> </div> <!-- 引入JS文件 -->
<script type="text/javascript" src="${home}/js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="${home}/js/bootstrap.min.js"></script> <script type="text/javascript" src="${home}/js/docs.min.js"></script>
<script type="text/javascript" src="${home}/js/ie10-viewport-bug-workaround.js"></script> <script type="text/javascript" src="${home}/js/fileMgr.js"></script> </body>
</html>

jquery方法:-fileMgr.js

//文件列表
$(document).ready(function()
{
var page=2;
var pageSize=10; var pageParam={};
pageParam.page=page;
pageParam.pageSize=pageSize; $.post(home+"/file/queryFileInfo",pageParam,
function(result)
{
if(result && result.success)
{
var obj =result.rows; for ( var i = 0; i < obj.length; i++) {
var res =obj[i];
var tr="<tr><td>"
<span style="white-space:pre"> </span>+ res.bucketName
<span style="white-space:pre"> </span>+ " </td> <td>"
+ res.number
+ "</td> <td>"
+ res.dailyNew
+ "</td>";
+ "<td><a class='a_model a_collect' href=javascript:openUpdateModal('"+res.bucketName+"','"+res.number+"','"+res.dailyNew+"')>改动</a>" + "<a class='a_track' href=javascript:delResource('"+res.bucketName+"')>删除</a></td> </tr>";
$(".table").append(tr); }
}else
{
alert(result.msg);
}
},"json");
});

这样页面的数据直接在jquery直接加入到表格中。看起来是有点高大上的感觉。

SpringMVC+Jquery -页面异步载入数据的更多相关文章

  1. bootstrap jQuery Ztree异步载入数据,check选择&amp;可加入、改动、删除节点

    效果图: 一.下载zTree插件 地址:http://www.ztree.me 二.html代码 <link href="../Scripts/zTree/css/zTreeStyle ...

  2. [JS前端开发] js/jquery控制页面动态载入数据 滑动滚动栏自己主动载入事件

    本人小菜鸟一仅仅.为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人能够进来交流.寻求 ...

  3. 使用springmvc从页面中获取数据,然后根据获得的参数信息进行修改,如果修改的数据中含有不是基本数据类型的参数。比如传的参数中有Date类型的数据时,需要我们进行参数类型转换。

    1.1 需求 在商品修改页面可以修改商品的生产日期,并且根据业务需求自定义日期格式. 1.2 需求分析 由于日期数据有很多格式,所以springmvc没办法把字符串转换成日期类型.所以需要自定义参数绑 ...

  4. Android利用Volley异步载入数据完整具体演示样例(二)

    MainActivity例如以下: package cc.y; import android.app.Activity; import android.content.Context; import ...

  5. 使用 jsPlumb 绘制拓扑图 —— 异步载入与绘制的实现

    本文实现的方法能够边异步载入数据边绘制拓扑图. 有若干点须要说明一下: 1.  一次性获取全部数据并绘制拓扑图. 请參见文章: <使用 JsPlumb 绘制拓扑图的通用方法> ; 本文实现 ...

  6. android中listview分页载入数据

    前段时间做的新浪微博项目一直想实现listview分页载入数据,今天最终实现了,哈哈!感觉挺好的,今天又写了个demo给大家分享下. 首先说下listview的优化方案,这也是面试中常考的题目.优化方 ...

  7. Cocos2d-x3.2 TextureCache类异步载入功能解说

    本文TextureCache类异步载入功能的代码抽出,总共代码就200多行.感兴趣能够看看. 研究这个主要是由于项目中须要异步插入数据,但之前的方法在Android上总是崩溃所以想到TextureCa ...

  8. Springmvc中 同步/异步请求参数的传递以及数据的返回

    转载:http://blog.csdn.net/qh_java/article/details/44802287 注意: 这里的返回就是返回到jsp页面 **** controller接收前台数据的方 ...

  9. springmvc中同步/异步请求参数的传递以及数据的返回

    注意: 这里的返回就是返回到jsp页面 **** controller接收前台数据的方式,以及将处理后的model 传向前台***** 1.前台传递数据的接受:传的属性名和javabean的属性相同 ...

随机推荐

  1. webpack配置相关的页面异常

    原文:https://www.cnblogs.com/Hsong/p/9023341.html 前言 在团队协作开发中,为了统一代码风格,避免一些低级错误,应该设有团队成员统一遵守的编码规范.很多语言 ...

  2. 加密中加salt的意思

    所谓加Salt,就是加点“佐料”.当用户首次提供密码时(通常是注册时),由系统自动往这个密码里加一些“Salt值”,这个值是由系统随机生成的,并且只有系统知道.然后再散列.而当用户登录时,系统为用户提 ...

  3. codevs 1803 志愿者招募

    1803 志愿者招募 2008年NOI全国竞赛  时间限制: 2 s 空间限制: 128000 KB 题目等级 : 大师 Master   题目描述 Description 申奥成功后,布布经过不懈努 ...

  4. Nutch命令大全

    Nutch采用了一种命令的方式进行工作,其命令可以是对局域网方式的单一命令也可以是对整个Web进行爬取的分步命令.主要的命令如下: 1. Crawl Crawl是"org.apache.nu ...

  5. java判断string数组中是否包含某个元素

  6. C/C++易错难点笔记01

    疑惑点 C++是一门奇妙的语言.非常多时候你对底层不熟悉,非常难知道某些情况下的结果,以下是我不断积累的疑惑点,这里将其记录下来. 类的转换问题 代码: class A{ public: virtua ...

  7. yqj2065经典语录

    在上课时.博客中和<编程导论(Java)>书中,yqj2065说过一些简短的话.列举一些玩玩. 假设您在我的博客中看见好玩的,最好还是推荐一下. 持续加入中... 1. "噢姐姐 ...

  8. cocos2d_x_03_经常使用类的使用_事件_画图

    一.TextFieldTTF输入框的使用 #pragma mark - 自己定义方法 // 自己定义方法,加入一个 TextField void TextFieldScene::addOneTextF ...

  9. bzoj3275: Number(最小割)

    3275: Number 题目:传送门 题解: 双倍经验@bzoj3158 代码: #include<cstdio> #include<cstring> #include< ...

  10. iOS (封装)一句话调用系统的alertView和alertController

    前言: 本文仅作参考存留,请用新版封装:iOS 更加优雅便捷的UIAlertView/UIAlertController封装使用 UIAlertController是iOS8.0之后出来的新方法,其将 ...