在初步掌握了java对象和json的相互转化之后,今天要学习的就是如何使用ajax来请求action 并且放回json字符,在前台对json数据进行解析。
第一步:使用ajax 的post直接提交,写一个Post.jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
My JSP 'index.jsp' starting page
Hello
然后有一个与它对应的js(Post.js)文件,用来写post的提交:
$(function(){
$("#bt").click(function(){
var result=$("#name").val();
//使用$.post方式 提交
$.post(
"postAction",//指定提交的url
{'result':result}, //传递的参数 ,使用Struts2 的注入参数的方式(action中有对应的属性,setter方法)
function success(data){ //提交成功之后的回调函数
alert(data);
var r = $.parseJSON(data) ; //包数据解析为json 格式
alert(r.name);
$("#result").html(r.name);
},
"json" //指定返回的数据为json字符串
);
});
});
对应的PostAction:
public class PostAction extends ActionSupport {
private String result;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
@Override
public String execute() throws Exception {
JSONObject jobject=new JSONObject();
// Map map=new HashMap();
// map.put("name", result);
jobject.element("name", result);
result=jobject.toString();
return super.execute();
}
}
Struts配置文件:
?xml version="1.0" encoding="UTF-8" ?>
result
结果:
点击按钮:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
Hello
Ajax.js:
$(function(){
$("#bt").click(function(){
var name=$("#name").val();
$.ajax({
type: "post",
dataType:'json', //接受数据格式
cache:false,
data:{"result":name},
url: "ajaxAction",
beforeSend: function(XMLHttpRequest){
},
success: function(data){
alert(data);
var r = $.parseJSON(data) ; //将字符串解析成json对象
$("#result").html(r.name);
},
error: function(){
//请求出错处理
alert("Error!");
}
});
});
});
AjaxAction:
$(function(){
$("#bt").click(function(){
var name=$("#name").val();
$.ajax({
type: "post",
dataType:'json', //接受数据格式
cache:false,
data:{"result":name},
url: "ajaxAction",
beforeSend: function(XMLHttpRequest){
},
success: function(data){
alert(data);
var r = $.parseJSON(data) ; //将字符串解析成json对象
$("#result").html(r.name);
},
error: function(){
//请求出错处理
alert("Error!");
}
});
});
});
Struts 配置文件:
result