<package name="json" namespace="/" extends="json-default">
<action name="testByAction" class="com.xuefeng.ssh.action.GetJsonAction" method="execute">
<param name="includeProperities">
dataMap.*
</param>
<result type="json"></result>
</action>
</package>
struts.xml里边,我直接加了个包,也不知道对不对,param这个是跟action里边的map想对应的
package com.xuefeng.ssh.action;
import java.util.HashMap;
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.xuefeng.ssh.model.User;
public class GetJsonAction implements Action{
@SuppressWarnings("rawtypes")
private Map dataMap;
@SuppressWarnings("unchecked")
public String execute() throws Exception {
User u = new User();
u.setId(13);
u.setUsername("huhuliuxia");
u.setPassword("huhuliuxia");
dataMap = new HashMap<String, Object>();
dataMap.put("user",u.getUsername());
dataMap.put("success", true);
return SUCCESS;
}
@SuppressWarnings("rawtypes")
public Map getDataMap() {
return dataMap;
}
public void setDataMap(@SuppressWarnings("rawtypes") Map dataMap) {
this.dataMap = dataMap;
}
}
action的返回得到json :{"dataMap":{"success":true,"user":"huhuliuxia"}}
<script>
$(document).ready(
function(){ $("#btnOK").click(function() {
$.ajax({
type: "post",
url: "/WebContent/testByAction.action",
//方法传参的写法一定要对,str为形参的名字,str2为第二个形参的名字
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(json) {
//返回的数据用data.d获取内容
var jsonObj = eval(json);
alert(jsonObj.dataMap.user);
},
error: function() {
alert("error");
}
});
//禁用按钮的提交
return false;
}); }
);
</script>
一开始url没配对,相对路径要搞清楚。
还有觉得代码没错误,就删除下work里边的类。
向ajax中传递请求的参数
data: "name=John&location=Boston",
第二种方式:
data: {name:"John",location:"Boston"}