如何使用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";
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
用Ajax是为了避免刷新页面,但是用s:iterator输出数据是需要重新加载页面才能实现的,两者不能兼顾的。要不就在success时取出data数据,然后利用DOM插入到页面中。