SSH框架下jquery ajax的前后台传值

今天jajax弄了半天,总结了下失败的经验,是因为JAVA服务器端返回值不对,把正确的使用方法在这写一下,如果有和我一样框架的,可以参考参考:

JSP端:

function autoCode(){
       var f= document.standardAuthorizeForm
       jajax({
            url:"<%=request.getcontextpath()%>/standardsystem/standardsystem!autoProcesscode.do",
            data:"",
            async:false,
            success:function(data){
              f["processcode"].value=data.message;
            }
}
       )   

}
    url里面存放action那头要调用的方法,如果需要传参数给action中的方法就 data{"ACTION端需要的变量":JS端的变量},

    如果不需要参数就写data:"", 记住后头一定都是逗号不是分号。

    JAVA ACTION端:

     

public String autoProcesscode(){

   String processcode="123";
   Message msg= new Message();
   msg.setMessage(processcode);
   Struts2Utils.renderJson(msg);
 //这里不能直接
//Struts2Utils.renderJson(processcode);
//直接传processcode前success:function(data)获取不到值,必须得将processcode放在一个对象里,大家不需要关心msg对象啥,
//只需要知道这个msg有一个string类型叫message的私有变量可以用来存储processcode就行。
//此外还可以用来传List对象,但是直接传一个String XXX或者int XXX就是不行

}
为什么直接传String processcode,那边data就无法获取到值,这我不知道,反正按上述这么写,能成功的将后台的变量通过JAJAX传到前端就OK。  如果有大神知道原因的还望指点一二。

此外,如果前台data传值 data{"ACTION端需要的变量":JS端的变量},“action端需要的变量”必须要在对应的action文件中有对应同名的私有变量,并且有相对应的get set方法。


猜你喜欢

转载自blog.csdn.net/apacheuk/article/details/79281695