读书人

真心求解.ajax struts2 json交互 前台

发布时间: 2013-07-20 11:07:48 作者: rapoo

真心求解..ajax struts2 json交互 前台回调函数会Null

前台如下

    $.ajax({  
url : "findContentByid.action",
cache : false,
type : "post",
dataType : "json",
data : {mid : id},
success: function(data){
alert(data);
var json = eval("("+data+")");

},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("读取服务器数据失败...");
}
});



struts2 配置文件入下
<package name="ajaxmessage" extends="json-default" namespace="/">
<action name="findContentByid" class="messageAction" method="findContentByid">
<result type="json" name="findajaxmc">
<param name="root" >result</param>
</result>
</action>
</package>


action如下

public String findContentByid(){
Map<String, String> map = new HashMap<String, String>();
map.put("details", "a");
JSONObject jsonobject = JSONObject.fromObject(map);
result = jsonobject.toString();
System.out.println(getResult());
return "findajaxmc";
}


ajax可以进入action 并打印{"details":"a"}
为什么返回到ajax成功的回调函数alert data为null
<param name="root" >result</param> 这个result有set get 确定有值 就是传不回去..真心求达人指点..
JSON Struts Java
[解决办法]
我试了下都是可以的啊。

$.ajax({  
url : "${ctx}/admin/testAction!findContentByid.action",
type: "post",
cache : false,
dataType : "json",
data : {mid : 'dd'},
success?:?function(data)?{
var json = eval("("+data+")");
alert(json.details);

},
error : function(e) {
alert(e);

}
});


public String findContentByid() {
Map<String, String> map = new HashMap<String, String>();
map.put("details", "a");
JSONObject jsonObject = JSONObject.fromObject(map);
System.out.println(jsonObject.get("details") + "--------");
//this.result = jsonObject.toString();
this.result= "{\"details\": \"b\"}";
return "findajaxmc";
}


struts 配置
<action name="testAction" class="testAction" method="findContentByid">
<result type="json" name="findajaxmc">
<param name="root">result</param>
</result>
</action>

读书人网 >Java Web开发

热点推荐