当前位置: 代码迷 >> Java Web开发 >> 怎么将ajax查出的list在jsp的div中浏览
  详细解决方案

怎么将ajax查出的list在jsp的div中浏览

热度:5013   发布时间:2013-02-25 21:14:23.0
如何将ajax查出的list在jsp的div中浏览
需求是输入网址,一打开网页右下角弹出弹窗,弹窗中的数据从数据库获取,我用的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> 

大体就是这个思路了,你参考一下。
  相关解决方案