SSM框架后台传输Map到前台

 最近做个项目需要统计某个人某天每小时的工作量,当然这种问题的一般解决思路就是从数据库查找相应的数据会得到一个结果表,然后创建一个对应的javabean,将数据封装之后传到前台。可是一天24个小时啊,这样javabean属性加上姓名最少得25个属性,这怎么受得了,结果就想到将查询结果放map里,可是问题又来了,根据需求应该传到前台三个数据,一个是姓名,一个是时间,还有一个就是每个时间对应的工作量。可是map里最多放两个数据,另外一个放哪呢?并且这三个数据得一块传到前台,否则前台解析的时候数据的对应关系就不太好找。

 这三个对象还得放一个map里!!!怎么办呢?我就喜欢这种问题,绕脑子但是有意思。然后我就找到了一个还算完美的方法:一天不是24个小时么,统计的话不就是从0点到23点么,怎么样?到这里是不是就有点思路了?0到23,熟悉不?熟悉啊,这不就是数组的下标么,用一个length为24的数组来放每个小时的审核量不就解决了么,时间和审核量都有了,就剩一个姓名了,这下就好办了,直接用姓名做key,对应的审核量数组为value,完美~~

 接下来就是后台往前台传数据了,这时我们就需要用到JSON对象了,将得到的map转化一下就ok了

JSONObject json = JSONObject.fromObject(map);  //将数据封装成json对象
request.setAttribute("json",json);  //发送数据
 后台写好了,得到前台解析数据了,js里for循环遍历传过来的json对象即可
var json = ${json}  //接收数据
for(var key in json){  //遍历
    console.log(key+"每小时的工作量为"+json[key]);
    var jsonArray = eval("("+json[key]+")"); //将json对象中value转化为数组 
}





你可能感兴趣的:(日常问题)