struts2 jquery 整合Ajax问题
struts.xml配置如下:
<package name="ajax" extends="json-default">
<action name="AddNew" class="com.action.AddNewAction" method="AddNew">
<result name="success" type="json">
<param name="root">result</param>
</result>
</action>
</package>
JavaScript代码如下:
function clickButton()
{
var url = 'AddNew.action';
var params = {
SqlIndex:${SqlIndex},
PeriodId:${PeriodId}
};
jQuery.post(url, params, callbackFun,'json');
}
function callbackFun(data)
{
alert(data);//对应HelloWorld类的message属性
//获取数据后渲染页面
}
java Action如下:
private String result;
public String AddNew() throws Exception
{
result = “调用成功”;
return SUCCESS;
}
public void setResult(String result) {
this.result = result;
}
public String getResult() {
return result;
}
跟踪发现能够执行Action代码,但是没有调用jquery.post的回调函数。
把 jQuery.post(url, params, callbackFun,'
json');改成
jQuery.post(url, params, callbackFun,'
text');
能够调用回调函数,但是传回的data确实整个页面的内容,不是我想要的result。
请高手指点!
------解决方案--------------------
result =JSONUtil.serialize(“调用成功”) ;
------解决方案--------------------回调函数弹 alert(data.result);试试看
------解决方案--------------------private JSONObject result; 返回应该是jsonobject类型
------解决方案--------------------你设置的是回传类型是json,就必须传回json,至于json类型,你看下,可以自己拼接json串也可以借助util类
------解决方案--------------------转换
------解决方案--------------------
jQuery.post(url, params, callbackFun,'json');
json改成text不是目的,你得调查下为啥json的情况下不能调回调函数啊。
用json的话返回的date是com.action.AddNewAction这个对象,所以date.result应该可以取出来,至于text的时候返回的是啥不太清楚。。
------解决方案--------------------格式问题。
------解决方案--------------------