热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

JAVA实现JSON后端向前端传递数据

1 后端两个辅助类 ConcurrentDateUtil.Java,用于生成我们需要格式的时间 import java.text

1 后端两个辅助类

ConcurrentDateUtil.Java,用于生成我们需要格式的时间

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ConcurrentDateUtil {
  private static ThreadLocal threadLocal = new ThreadLocal() {
    @Override
    protected DateFormat initialValue() {
      return new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    }
  };

  public static Date parse(String dateStr) throws ParseException {
    return threadLocal.get().parse(dateStr);
  }

  public static String format(Date date) {
    return threadLocal.get().format(date);
  }
}

JsonResult.java,JsonResult封装,用于后端向前端传递数据

import com.sf.utils.ConcurrentDateUtil;

import java.util.Date;

public class JsonResult {
  public static int NEED_RE_LOGIN = 1;
  public static int NEED_RETRY = 2;

  private int errCode;

  private String message;

  private String timestamp = ConcurrentDateUtil.format(new Date());

  private T data;

  public String getMessage() {
    return message;
  }

  public void setMessage(String message) {
    this.message = message;
  }

  public String getTimestamp() {
    return timestamp;
  }

  public T getData() {
    return data;
  }

  public void setData(T data) {
    this.data = data;
  }

  public int getErrCode() {
    return errCode;
  }

  public void setErrCode(int errCode) {
    this.errCode = errCode;
  }
}

上面这两个类完成之后,我们就可以在web层的controller中使用JsonResult封装数据并传递到前端。

接下来介绍两种情况,看看前端怎么取数据出来

2 前端JS怎么取出数据

如果后端传给前端的JsonResult封装的是一个Map,例如

@ResponseBody
@RequestMapping(value = "/user/getUserAmount", method = RequestMethod.POST)
public JsonResult> getUserAmount() {
  JsonResult> result = new JsonResult<>();
  try {
    //已签到人数
    Integer signedAmount = userService.getSignedAmount();
    //总人数
    Integer totalUserAmount = userService.getTotalUserAmount();
    Map amountMap = new HashMap<>();
    amountMap.put("signed", signedAmount);
    amountMap.put("sum", totalUserAmount);
    result.setData(amountMap);
    //这里举个例子,如果觉得setData穿的信息不够,还可以用setMessage方法多传一个字符串过去
    result.setMessage("这是签到界面");
  } catch (Exception e) {
    log.warn(ExceptionUtils.getStackTrace(e));
  }
  return result;
}

现在想在前端JS把已签到人数和总人数两个数据取出来,要怎么做呢?只需要在”.”后面跟着Map的Key就好了,如下所示:

function getSignedAmount(){
  $.ajax({
    type: "post",
    url : getContextPath() + "/user/getUserAmount",
    dataType:'json',
    data: {
    },
    success: function(data){
      var amount = data.data;
      //取出总人数
      var totalAmount = amount.sum;
      //总人数减去已经签到的人数,就是未签到的人
      var unsignedNumber = amount.sum-amount.signed;
      //取出后端controller中setMessage方法传过来的字符串
      var logMessage = data.message;
    }
  });
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • 探讨在循环中调用$.post()时,回调函数为何会在循环结束后才开始执行,并提供解决方案和优化建议。 ... [详细]
  • 本文详细解析了如何使用Python的urllib模块发起POST请求,并通过实例展示如何爬取百度翻译的翻译结果。 ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • 在Web开发过程中,Ajax技术常用于前后端数据交互。其中一个重要的属性async决定了请求是否以异步方式执行,本文将详细解析async属性的作用及使用方法。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 本文详细介绍了如何使用 HTML 和 CSS 对文件上传按钮进行样式美化,使用户界面更加友好和美观。 ... [详细]
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
  • 本文详细介绍了如何利用Go语言和WebSockets技术构建一个高效的实时聊天系统。随着网络应用的日益复杂化,实时交互成为了提升用户体验的关键要素之一。通过本指南,开发者可以学习到最新的技术和最佳实践。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 理解文档对象模型(DOM)
    本文介绍了文档对象模型(DOM)的基本概念,包括其作为HTML文档的节点树结构,以及如何通过JavaScript操作DOM来实现网页的动态交互。 ... [详细]
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
author-avatar
吴燕凤怡雨家琴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有