首页 > 如何使用Ajax响应Struts2的s:iterator列表?

如何使用Ajax响应Struts2的s:iterator列表?

我想通过ajax在页面调用Action里的 模糊查询 方法后直接在页面端将结果放到s:iterator中,请教下各位是否可能实现?亦或有其他更好的办法?
数据格式使用的是json是否合适?

javascript:

function searchX(){
        $.ajax({
               type:"POST",
               url:"pages/module/Production_Management/po_ajax_getOrderBy",
               data:{
                   Inner_Order_ID     : $("#Inner_Order_ID").val(),
                   Customer_ID        : $('#Customer_ID').val(),
                   Product_Code_Bar : $('#Product_Code_Bar').val(),
                   Product_Name     : $('#Product_Name').val(),
                   
                   //pageSize : 10,
                   //pageNo : pageNo==null? 1:pageNo
                   
                   }, 
               dateType:"json",
               success:function(response){
            
               },
            error:function() {
                alert("error");
                        }
        })
    }

*.jsp

<s:iterator value="poModel.list" id="orderlist">
                        <tr height="30">
                        
                        
                        <td><s:property value="Inner_Order_ID"/></td>
                        <td><s:property value="Customer_ID"/></td>
                        <td><s:property value="Product_Code_Bar"/></td>
                        <td><s:property value="Product_Name"/></td>
                        
                        </tr>
                        </s:iterator>
                        

*.java

public String getOrderBy() throws Exception{
        
        String where = "FROM ProductOrder po "
                + "WHERE po.Inner_Order_ID like "
                + "'%"+ pro_order.getInner_Order_ID() +"%'"
                + " AND po.Customer_ID like "
                + "'%"+ pro_order.getCustomer_ID() +"%'"
                + " AND po.Product_Code_Bar like "
                + "'%"+ pro_order.getProduct_Code_Bar() +"%'"
                + " AND po.Product_Name like "
                + "'%"+ pro_order.getProduct_Name() +"%'"
                ;
        pageModel = productOrderDao.relfind(where, null,null, pageNo,pageSize);
        // 将要返回的pageModel对象进行json处理  
        JSONObject jo = JSONObject.fromObject(pageModel);
        // 调用json对象的toString方法转换为字符串然后赋值给result  
        this.result = jo.toString(); 
        System.out.println(this.result);
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out;
        try {
            out = response.getWriter();
            out.print(result);
            out.flush();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        return "json";
    }

用Ajax是为了避免刷新页面,但是用s:iterator输出数据是需要重新加载页面才能实现的,两者不能兼顾的。要不就在success时取出data数据,然后利用DOM插入到页面中。


  1. 提供你的 *.jsp 在浏览器中最终输出的HTML代码(而不是你的jsp源代码).

  2. 提供你目前这个 *.java 输出的内容(样本数据即可).

【热门文章】
【热门文章】