JAVA, JSON 백엔드에서 프런트엔드로 데이터 전달

3603 단어 javajson
1 백엔드 보조 클래스 2개
ConcurrentDateUtil.Java, 형식을 만드는 데 필요한 시간

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

public class ConcurrentDateUtil {
  private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>() {
    @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<T> {
  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;
  }
}

위의 두 종류가 완성되면 우리는 웹 층의 컨트롤러에서 JsonResult로 데이터를 봉인하여 전방으로 전달할 수 있다.
다음은 두 가지 상황을 소개하고, 앞부분에서 어떻게 데이터를 추출하는지 보자
2 프런트엔드 JS 데이터 추출 방법
백엔드가 프런트엔드에 전달되는 JsonResult가 맵으로 봉인된 경우 (예:

@ResponseBody
@RequestMapping(value = "/user/getUserAmount", method = RequestMethod.POST)
public JsonResult<Map<String, Integer>> getUserAmount() {
  JsonResult<Map<String, Integer>> result = new JsonResult<>();
  try {
    // 
    Integer signedAmount = userService.getSignedAmount();
    // 
    Integer totalUserAmount = userService.getTotalUserAmount();
    Map<String, Integer> 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에서 출석 인원수와 총 인원수 두 개의 데이터를 꺼내려면 어떻게 해야 합니까?","뒤에 맵의 키를 따라가면 됩니다. 아래와 같습니다.

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;
    }
  });
}
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기