本人是采用SSH架构搭建的项目
问题一:存在的问题是 获取的json数据 不显示。
UserAction代码
/** * 获取用户所有task列表 * * @param mapping * @param form * @param request * @param response * @return * @throws Exception */ public ActionForward getUserTasksList(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String userId = request.getParameter("userId"); String weekId = request.getParameter("weekId"); System.out.println("userId:" + userId + ",weekId:" + weekId); List<STaskOfweek> list = taskTotalService .queryTaskOfweekListByUserIdAndWeekId(Integer.valueOf(weekId), Integer.valueOf(userId)); System.out.println("list.size:" + list.size()); // request.setAttribute("userTaskList", userTaskList); List<UserTask> userTaskList = new ArrayList<UserTask>(); for (int i = 0; i < list.size(); i++) { STaskOfweek sow = list.get(i); UserTask ut =new UserTask(); ut.setTaskId(sow.getTaskId()); ut.setTaskName(sow.getTaskName()); ut.setWeekId(sow.getSWeek().getWeekId()); ut.setByAssessmanId(sow.getByAssessmanId()); userTaskList.add(ut); } Map map = new HashMap(); map.put("userTaskList", userTaskList); JSONArray jo = JSONArray.fromObject(map); System.out.println("str:"+jo.toString()); response.getWriter().write(jo.toString()); return null; }
JSP页面代码
<script type="text/javascript"> var root = "${pageContext.request.contextPath}"; $(document).ready(function(){ $("#displayTable").click(function(){ var url=root+"/getUserTasksList.do"; jQuery.post(url,"weekId=14&userId=30",function(data){ var m="<table border='1'>"; //var items=data.userTaskList;//在此若取不到值可用var items = data[0];代替 //var items=eval(data.userTaskList); var items = eval(data); for(var i=0;i<items.length;i++){ var task=items[i]; m=m+"<tr><td>"+task.taskName+"</td><td>"+task.taskId+"</td></tr>"; } m+="</table>"; document.getElementById("myTable").innerHTML=m; },'json'); }); }); </script> <body> <input type="button" value="显示我的表格" id="displayTable"/> <div id="myTable">测试json数据显示</div> </body>
感谢群里所有好心的朋友,我的问题最终得到解答。
贴出来,作个参考。
<script type="text/javascript"> var root = "${pageContext.request.contextPath}"; $(document).ready(function () { var userId = $('#userId').val(); $("[id^=weekId]").each(function () {//循环 var weekId = $(this).val(); $("#myli" + weekId).click(function () { var url = root + "/getUserTasksList.do"; jQuery.post(url, "weekId=" + weekId + "&userId=" + userId, function (data) { var jsonDoc = eval('(' + data + ')'); var m = "<table border='1'>"; var items = jsonDoc[0].userTaskList; for (var i = 0; i < items.length; i++) { var task = items[i]; m = m + "<tr><td>" + task.taskId + "</td><td><a href='javascript:void(0);'>" + task.taskName + "</a></td></tr>"; } m += "</table>"; if(document.getElementById("myTable"+ weekId)!=null){ document.getElementById("myTable"+ weekId).innerHTML = m; } }); }); }); }); </script>
<form action="" id="usertaskForm"> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td> <div id="menu"> <h3> 用户 <font color="red">${requestScope.user.userName }</font>任务列表 </h3> <ul> <c:forEach items="${requestScope.yearList }" var="year"> <li> <em></em><a href='javascript:void(0);'>${year.yearName }</a> <ul> <c:forEach items="${year.SMonths }" var="month"> <li> <em></em><a href='javascript:void(0);'>${month.monthName}</a> <ul> <c:forEach items="${month.SWeeks }" var="week"> <li id="myli${week.weekId}"> <input type="hidden" name="weekId" value="${week.weekId}" id="weekId${week.weekId}"/> <input type="hidden" name="userId" value="${requestScope.user.userId }" id="userId"/> <em></em><a href='javascript:void(0);'>${week.weekId}|${week.weekName}</a> <ul> <li> <c:forEach items="${week.STaskOfweeks }" var="task"> <div id="myTable${week.weekId}"></div> </c:forEach> </li> </ul> </li> </c:forEach> </ul> </li> </c:forEach> </ul> </li> </c:forEach> </ul> </div> </td> </tr> </table>