在使用struts提供的json插件来完成ajax操作注意事项:
1.首先要导入相应版本的jar包
例如:struts2-json-plugin-2.3.24.jar
2.将struts.xml文件中的<packagename="" namespace=""extends="struts-default"/>修改为<packagename="" namespace="" extends="json-default"/>
3.将action的返回视图设置为<action name=""type="json"></action>
4.如果配置了以上两步,那么struts框架会自动将valuestack中的值压入到栈顶。
5.在进行相应代码的编写过程中,action的编写过程中,需要以下语句:ActionContext.getContext().getValueStack().set("list",list);
如果压入栈中的数据是一个list集合,那么它的格式如下:
$(function(){
$("#a").toggle(function(){
//想服务器发送请求获取商品
$.post("${pageContext.request.contextPath}/strutsjson",function(data){
var html = "<tableborder='1px'><tr><td>编号</td><td>名称</td><td>价格</td></tr>";
for(vari=0;i<data.length;i++){
html+="<tr><td>"+data[i].id+"</td><td>"+data[i].name+"</td><td>"+data[i].price+"</td></tr>";
}
html+= "</table>";
$("#d").html(html);
},"json");
},function(){
$("#id").html("");
})
})
没有设置root前返回的json结果形式如上,list:[{},{}],而这种形式在前端页面进行取值的时候会接受不到,出现以下情形
设置root后返回的json结果形式为[{},{}],具体代码如下:
<action name="" class=""method="">
<result name="success"type="json">
<param name="root">list</param>
</result>
</action>
经过以上设置后,现在就可以正常显示数据了
快来和博主打成一片吧^_^