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

发布于 2022-09-01 20:42:50 字数 2912 浏览 14 评论 0

我想通过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";
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

神经大条 2022-09-08 20:42:50

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文