使用servlet api返回数据实现ajax
jsp:
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" >
$(function(){
$('#btn').click(function(){
$.post("ajax.action",function(data){
$('#msg').html(data);
});
});
});
</script>
</head>
<body>
<input type="button" id="btn" value="获取ajax信息"/>
<h3 id="msg"></h3>
</body>
</html>
action:
public class AjaxAction {
public String execute() throws IOException{
HttpServletResponse resp=ServletActionContext.getResponse();
resp.setCharacterEncoding("utf-8");
resp.getWriter().print("ajax");
return null;
}
}
struts.xml
<struts>
<package name="default" namespace="/" extends="list-default">
<action name="ajax" class="cn.sxt.action.AjaxAction">
</action>
</package>
</struts>
使用struts2插件来实现ajax处理(返回json数据格式)
观察里面的xml,所以extends要继承的是json-default了
Action:
public class JsonAction {
private JSONArray root;
public String execute(){
List<User> list=new ArrayList<User>();
list.add(new User("s", 1));
list.add(new User("i",2));
list.add(new User("g", 3));
root=JSONArray.fromObject("list");
System.out.println("root="+root.toString());
return "success";
}
public JSONArray getRoot() {
return root;
}
public void setRoot(JSONArray root) {
this.root = root;
}
}
struts.xml
<struts>
<package name="default" namespace="/" extends="json-default">
<action name="json" class="cn.sxt.action.JsonAction">
<result type="json">
<param name="root">root</param>
</result>
</action>
</package>
</struts>
jsp
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" >
$(function(){
$('#btn').click(function(){
$.post("json.action",function(data){
var html="";
for(var i=0;i<data.length;i++){
html+="<tr><td>"+data[i].name+"</td><td>"+data[i].age+"</td></tr>";
$('#content').html(html);
}
},'json');
});
});
</script>
</head>
<body>
<input type="button" id="btn" value="获取ajax信息"/>
<table width="80%" >
<tr>
<td>姓名</td>
<td>年龄</td>
</tr>
<tbody id="content">
</tbody>
</table>
</body>
</html>