需求是输入网址,一打开网页右下角弹出弹窗,弹窗中的数据从数据库获取,我用的ajax去查,现在在action中已查出结果list,但是如何返回jsp中,并在div弹窗中迭代出来浏览,没写过这个,现在写到一半,不知道怎么写了,可能还有的写的不对,小弟愿闻其详
以下是ajax和弹窗代码
- HTML code
<script type="text/javascript"> $(function(){ $.ajax({ url:'AnnouncementNewOutJsp.action', async:false, data:{}, success:function(result){ } }); }); </script> <div id="msg_win" style="display: block; top: 2000px; width: 300px; visibility: visible; opacity: 1;"> <div class="icos"> <a id="msg_min" title="最小化" href="javascript:void 0">_</a><a id="msg_close" title="关闭" href="javascript:void 0">×</a> </div> <div id="msg_title"> 重要提示:培训系统要写好 </div> <div id="msg_content" style="width: 300px;"> 1、要好好写培训系统: <a href="www.baidu.com" target="_blank">www.baidu.com</a> <br> 2、要写好培训系统: <a href="www.baidu.com" target="_blank">www.baidu.com</a> <br> <span style="color: blue">3、完成任务</span> <br> </div> </div>
以下是action
- Java code
/** * 找出最新的size条公告 */ public String findNew() { try { list = announcementService.selectNewAnnouncement(SIZE); if (list != null) { result = true; }else{ result = false; } return "success"; } catch (Exception e) { e.printStackTrace(); return "error"; } }
有人告诉我先把list转成json对象,但是我查了资料,都是在js里获得了数据,但是我这是要在弹窗div中浏览查到的数据,不知道该怎么写了。求教
------解决方案--------------------------------------------------------
java代码:
先将 list 转换成json
JSONArray jsonArray2 = JSONArray.fromObject( list );
然后
printWriter out=response.getWriter();
out.print(jsonArray2);
好像struts ajax 是 return null
javascript 代码
$.ajax({
url:'AnnouncementNewOutJsp.action',
async:false,
data:{},
success:function(result){
var arr=eval(result);//是一个数组
循环这个数组arr 就可以了
然后就是动态添加数据到页面上了 jquery 或者 dom 吧
}
});
------解决方案--------------------------------------------------------
也不一定用ajax写的, 用<s:iterator></s:iterator> 这个标签把list的值取出来进行循环。要在页面打开的时候弹出窗口,可以再<body onload="function()"></body> 然后写一个function方法执行就行了。
<table>
<s:iterator value=$("#list") var="list">
<tr>
<td><s:property value="id"/></td>
<td><s:property value="name"/></td>
。。。。
</tr>
</s:iterator>
</table>
大体就是这个思路了,你参考一下。