AJAX+Struts+json简单的实例

导入那些包就不说了,之前好奇怪的问题是 我在Action里面的方法返回只有return null;才能正确的执行success回调,

Action里面

public String Fill() throws IOException {
// 取值
HttpServletResponse response = getResponse();
// 设置返回类型
response.setContentType("application/json; charset=utf-8");
PrintWriter writer = response.getWriter();
// 获取数据
list = service.excuteSelect("PProduct");
//json数组
JSONArray json = new JSONArray();
JSONObject jo = new JSONObject();
//list转为json
try {
for (int j = 0; j < list.size(); j++) {
PProduct m = (PProduct) list.get(j);


jo.put("name",m.getName());
json.add(jo);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


// System.out.println(json.toString() );


writer.print(json);
//缺少下面两句就error 要关闭
writer.flush();
writer.close();
return SUCCESS;
}

struts.xml正常配置就OK

ajax如下:

$.ajax({
url:"materialInfo!Fill.action",
type:"post",
dataType:"json",
success:function(data){
for(var i = 1;i<data.length;i++)//从1开始 因为第一行的数据 不是需要的
{$("#materialName").append('<option value="'+data[i].name+'">'+data[i].name+'</option>')};
$("#materialName").selectbox();//渲染下拉咧

},
error:function()
{
alert("数据获取失败 请重试");
}
});

JSP如下:

<select id="materialName" autoWidth="true"> </select>

相关文章

$.AJAX()方法中的PROCESSDATA参数 在使用jQuery的$.ajax()方...
form表单提交的几种方式 表单提交方式一:直接利用form表单提...
文章浏览阅读1.3k次。AJAX的无刷新机制使得在注册系统中对于...
文章浏览阅读1.2k次。 本文将解释如何使用AJAX和JSON分析器在...
文章浏览阅读2.2k次。/************************** 创建XML...
文章浏览阅读3.7k次。在ajax应用中,通常一个页面要同时发送...