前台如下
$.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 确定有值 就是传不回去..真心求达人指点..
JSONStrutsJava
java.lang.Integer.parseInt(Integer.java:417)
java.lang.Integer.parseInt(Integer.java:499)
cn.com.hkgt.auth.action.workbench.MessageAction.findContentByid(MessageAction.java:84)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
后台的json已经写死
public String findContentByid(){
String centent = announcemnetService.findcontent(Integer.parseInt(mid));
Map<String, String> map = new HashMap<String, String>();
map.put("details", centent);
JSONObject jsonobject = JSONObject.fromObject(map);
result = jsonobject.toString();
System.out.println(getResult());
return "findajaxmc";
}
这是完整的action
result ="{\ "firstName\": \"Brett\" } ";
return "findajaxmc";
}
浏览器直接访问findContentByid.action得到什么就是什么,空白就是java没配置对,帮你移动到java去算了
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>
error: function (XMLHttpRequest, textStatus, errorThrown)看看错误的相信信息,是否返回200, responseText里面会有返回数据,