前台常用封装(一)
开发web项目时,经常会使用到的页面脚本语言javascript,使用它能让页面展示上的效果更多彩。
今天就来说一下,从数据库中获取到数据后在页面上的展示方式:
1.数据库取出数据放入list<object>,将其使用jsonobject封装成json串:
<select id="selectAll" resultMap="BaseResultMap" parameterType="java.util.Map"> select <include refid="Base_Column_List" /> from user </select> 业务层将数据返回到控制层代码简单,此处略过。也可参考我的另一篇随笔:关于spingmvc
此处是list数据的json封装,代码如下: public void writeChartJson(List<Object> list, HttpServletResponse res) throws IOException { int size = list.size(); StringBuffer sb = new StringBuffer(); sb.append("{"); sb.append("\"count\":" + size + ","); sb.append("\"resultList\":"); JSONArray jsonArray = JSONArray.fromObject(list); sb.append(jsonArray); sb.append("}"); StringBuffer temp = new StringBuffer(); StringTokenizer token = new StringTokenizer(sb.toString(), "\n\r\t"); while (token.hasMoreTokens()) temp.append(token.nextToken()); res.setContentType("text/json; charset=utf-8"); System.out.println(temp.toString()); res.getWriter().print(temp.toString()); }
2.前台jsp页面,首先引入jquery.js,请求后台获取list的json数据并解析:
$(function() { $.ajax({ type: "POST", url: "<%=basePath%>admin/xxx/getXXX.do", data:{}, success: function(msg){ var count = msg.count; if(count > 0){ for(var i=0;i<count;i++){ var id=msg.resultList[i].id; var name=msg.resultList[i].name; alert(id); } }else{ alert("无数据"); } }, error: function(){ alert("出错"); } }); });
后台获取的map集合封装json,代码和上面类似,不在赘述。
前台请求获取代码同上,处理不同如下:
success: function(msg){ var count = msg.count; if(count > 0){ var arr = msg.resultList[0]; for(var key in arr){ alert("key:"+key+",value:"+arr[key]); var ar1=arr[key][0]; var ar2=arr[key][1]; alert(ar1); } }else{ alert("无数据"); } }
以上就是个人使用js对json数据的解析处理了,做个小例子,记录一下曾经使用过。