从数据库读出的对象集合传给jQeury的ajax回调函数得到的值是页面源代码?为什么

action:
public class ProductAction extends ActionSupport implements ModelDriven<Product> {
private Product product=new Product();

private ProductService productService;
public void setProductService(ProductService productService) {
this.productService = productService;
}
public String find() throws Exception{
List<Product> list= productService.findProduct(product);
if (list.size()>0) {
ActionContext.getContext().put("productList", list);
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
PrintWriter out=response.getWriter();
out.print(list);//本人感觉这里有问题啊,好多人说用json,但不懂啊
return SUCCESS;
}
return "error";
}

public Product getModel() {
return product;
}
}
jQeury:
$(function(){
$("#btn").click(function(){
$.ajax({
type:"post",
url:"productAction!find.action",
data:'{"productName":"'+$("#productName").val()+'"}',
datatype:"json",
contentType:'json',
success:function(data){
alert(data);

}
});
});
页面:
项目名称:<input type="text" name="productName" id="productName" /><input id="btn" type="button" value="查询">
<div id="data">
<table>
<tr>
<td>项目编号</td>
<td>项目名称</td>
</tr>
<s:iterator value="productList" id="pp">//
<tr>
<td>${id }</td>
<td>${productName }</td>
</tr>
</s:iterator>
</table>
</div>
得到值是页面的源代码

斯蒂芬大帝
浏览 220回答 1
1回答

白板的微信

建议你再加一句,out.setContentType(“text/html”);说明返回的是页面内容PrintWriter out=response.getWriter(); 这行代码后边加out.setContentType(“text/html”); out.print()执行之后加out.flush()进行优化写入,out.close()关闭资源
打开App,查看更多内容
随时随地看视频慕课网APP