第一次用到这些东西、很无奈!o(︶︿︶)o !!!还是终于把它暂时完成了:
在Struts2中使用json插件需要如下包:
commons-beanutils-1.7.0.jar
commons-collections-3.2.jar
commons-lang-2.3.jar
commons-logging-1.1.1.jar
ezmorph-1.0.3.jar (不这个会去一非常怪错误。不相信你可以试试) 我认为应该无法实现java对象与json对象之间转化.
json-lib-2.3-jdk15.jar
struts2-json-plugin-2.1.8.1.jar
struts.xml配置文件:
<package name="jsonajax" extends="json-default"> <!-- 会议记录action --> <action name="mgrmeet" class="mgrAction"> <result name="success" type="json"> <param name="root">result</param> </result> </action> </package>
action代码:
/** * 会议记录查询 * 创建者:何祖文 * 时间:2011-04-11 */ @SuppressWarnings("all") public class MeetingMgrAction extends ActionSupport implements ServletRequestAware, ServletResponseAware { /** * Aware方式 */ private HttpServletRequest request; private HttpServletResponse response; public void setServletRequest(HttpServletRequest request) { this.request = request; } public void setServletResponse(HttpServletResponse response) { this.response = response; } /** * 注入会议记录业务层 */ private IMeetingMgr mgrService; public void setMgrService(IMeetingMgr mgrService) { this.mgrService = mgrService; } /* * 返回页面json格式字符串属性跟Struts.xml中的 * 配置要对应 */ private String result; public String getResult() { return result; } public void setResult(String result) { this.result = result; } /* * 查询会议记录方法 */ public String selectAll(){ String meet = request.getParameter("meetId"); List jsonList = new ArrayList(); List list = new ArrayList(); //如果会议编号不为空 if(null !=meet && !"".equals(meet)){ //创建获取星期日期对象 TimeTake time = new TimeTake(); //调用查询方法 list = mgrService.getMgrByTime(Long.valueOf(meet), time.getTime()); } //遍历list集合 for (int i = 0; i < list.size(); i++) { //获取集合中对象信息 Tbmeetmgr t = (Tbmeetmgr)list.get(i); /*转换json的javaBean由于直接用Hibernate生成的 *javaBean中有Set集合属性会让json格式转换是 *出现死循环状况!所以自己写了个javaBean基本上跟生成 *的没什么两样、就是没有set集合跟对象属性 */ TbmToJson tbm = new TbmToJson(); tbm.setZhuti(t.getZhuti()); tbm.setChangetime(t.getChangetime()); tbm.setCreatetime(t.getCreatetime()); tbm.setEndtime(t.getEndtime()); tbm.setId(t.getId()); tbm.setMeetcode(t.getMeetcode()); tbm.setRemark(t.getRemark()); tbm.setStarttime(t.getStarttime()); tbm.setStatus(t.getStatus()); tbm.setStoptime(t.getStoptime()); tbm.setYiti(t.getYiti()); jsonList.add(tbm); } //将json格式转换成字符串、并赋值给result属性 JSONArray json = JSONArray.fromObject(jsonList); result = json.toString(); System.out.println(result); return "success"; }
jsp页面——JS部分:
function Meetinghh(){ var id = $("#hiddenid").val(); alert(id); var urlx = "<%=path %>/platform/mgrmeet!selectAll.action?meetId=" + id ; alert(urlx);////dataType:"json", //数据格式:JSON $.ajax({ type: "POST", //用POST方式传输 dataType : "json", url:urlx, //目标地址 async:false, //作用是防止在ajax成功调用之前就调用$("#Pagination").pagination,这个时候数据个数还没有初始化 error : function(e) { alert("error"); }, success:function(jsonData) { alert('success'); var json = eval("("+jsonData+")"); alert(json); for(var key in json){ alert(key); var str = "<tr>" + "<td>"+json[key].id+"</td>" + "<td>"+json[key].zhuti+"</td>" + "<td>"+json[key].starttime+"</td>" + "<td>"+json[key].endtime+"</td>" + "<td>"+json[key].stoptime+"</td>" + "</tr>"; $('#biaoTable').append(str); } } }); }
jsp页面——Div部分:
<div id="result"> <input type="button" value="ddd" onclick="Meetinghh()"/> <table id="biaoTable"> <tr> <td>编号</td> <td>主题</td> <td>起始时间</td> <td>结束时间</td> <td>日期</td> </tr> </table> </div>
在这次开发过程中——不断的学习不断的错误~~~!o(︶︿︶)o 唉接二连三的错误!!!
非常打击人! 搞开发不单是需要技术、还需要耐心跟冷静!!!
其实这个问题——我只用花几分钟就能解决的、谁知道干了一天还没结果!!!