问题描述
环境:struts2-json-plugin-2.1.8.jar和jquery1.5.2.min.jsstruts.xml<packagename="ajax"extends="json-default"><actionname="regnow"method="RegisterNow"class="com.manage.struts.action.AjaxAction"><resulttype="json"name="success"><paramname="root">jsonstr</param></result></action></package>
AjaxActionimportcom.opensymphony.xwork2.Action;importcom.opensymphony.xwork2.ActionSupport;publicclassAjaxActionextendsActionSupport{publicStringRegisterNow()throwsException{this.setJsonstr(0);returnAction.SUCCESS;}privateintjsonstr;publicintgetJsonstr(){returnjsonstr;}publicvoidsetJsonstr(intjsonstr){this.jsonstr=jsonstr;}}
前台JS:if(confirm('您是否真的注册?')){vard=newDate();varurl=path+"/regnow.shtml?time="+d.getMilliseconds();varparams={"uname":uname,"upwd":upwd,"upwdtrue":upwdtrue,"email":email,"contact":contact,"tel":tel,"uimid":$('#sel_im').val(),"uimname":im,"bankid":$('#sel_zf').val(),"bankname":bankname,"banknum":banknum}$.ajax({url:url,type:"POST",cache:false,dataType:"json",data:params,beforeSend:loading,success:function(data){alert(data+"test");},error:callbackError,dataFilter:callbackFilter});}
Action可以访问到,并且没有错误,前台js返回成功,执行success函数,但在打印的alert(data+"test")结果为"nulltest",data为null,不知道是什么原因,难道是struts.xml的配置有误??
解决方案
解决方案二:
补充:使用$.getJSON(url,params,callbackRegFun);可以得到返回值,但getJSON缺乏error、dataFilter等事件,如果非要用$.ajax就不能拿到json字符串吗?
解决方案三:
varparams={"uname":uname,"upwd":upwd,"upwdtrue":upwdtrue,"email":email,"contact":contact,"tel":tel,"uimid":$('#sel_im').val(),"uimname":im,"bankid":$('#sel_zf').val(),"bankname":bankname,"banknum":banknum}在Action中将params中的keysetget下..
解决方案四:
该回复于2011-04-27 11:18:47被版主删除