日期:2014-05-17  浏览次数:20644 次

如何将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> 

大体就是这个思路了,你参考一下。