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的时候返回的是啥不太清楚。。
------解决方案--------------------格式问题。
------解决方案--------------------