JAVA实现JSON后端向前端传递数据
1后端两个辅助类
ConcurrentDateUtil.Java,用于生成我们需要格式的时间
importjava.text.DateFormat; importjava.text.ParseException; importjava.text.SimpleDateFormat; importjava.util.Date; publicclassConcurrentDateUtil{ privatestaticThreadLocalthreadLocal=newThreadLocal (){ @Override protectedDateFormatinitialValue(){ returnnewSimpleDateFormat("yyyy-MM-ddhh:mm:ss"); } }; publicstaticDateparse(StringdateStr)throwsParseException{ returnthreadLocal.get().parse(dateStr); } publicstaticStringformat(Datedate){ returnthreadLocal.get().format(date); } }
JsonResult.java,JsonResult封装,用于后端向前端传递数据
importcom.sf.utils.ConcurrentDateUtil; importjava.util.Date; publicclassJsonResult{ publicstaticintNEED_RE_LOGIN=1; publicstaticintNEED_RETRY=2; privateinterrCode; privateStringmessage; privateStringtimestamp=ConcurrentDateUtil.format(newDate()); privateTdata; publicStringgetMessage(){ returnmessage; } publicvoidsetMessage(Stringmessage){ this.message=message; } publicStringgetTimestamp(){ returntimestamp; } publicTgetData(){ returndata; } publicvoidsetData(Tdata){ this.data=data; } publicintgetErrCode(){ returnerrCode; } publicvoidsetErrCode(interrCode){ this.errCode=errCode; } }
上面这两个类完成之后,我们就可以在web层的controller中使用JsonResult封装数据并传递到前端。
接下来介绍两种情况,看看前端怎么取数据出来
2前端JS怎么取出数据
如果后端传给前端的JsonResult封装的是一个Map,例如
@ResponseBody @RequestMapping(value="/user/getUserAmount",method=RequestMethod.POST) publicJsonResult
现在想在前端JS把已签到人数和总人数两个数据取出来,要怎么做呢?只需要在”.”后面跟着Map的Key就好了,如下所示:
functiongetSignedAmount(){ $.ajax({ type:"post", url:getContextPath()+"/user/getUserAmount", dataType:'json', data:{ }, success:function(data){ varamount=data.data; //取出总人数 vartotalAmount=amount.sum; //总人数减去已经签到的人数,就是未签到的人 varunsignedNumber=amount.sum-amount.signed; //取出后端controller中setMessage方法传过来的字符串 varlogMessage=data.message; } }); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。