首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jQuery ajax与struts2以json方式交互

2012-11-20 
jQuery ajax与struts2以json形式交互通过ajax更换div的样式,可能失败的原因:1、ajax中的cache: false是必须

jQuery ajax与struts2以json形式交互

通过ajax更换div的样式,可能失败的原因:

1、ajax中的cache: false是必须的;

2、查看url是否正确,通过浏览器直接方法url看看是否执行;

3、查看是否有拦截器之类程序,就此拦截(这个很隐蔽,尤其是你都系统不是很熟悉)

4、ajax传递的参数没有传到后台,可能在action中,属性没有设置set方法,还有就是属性的名字不对(-_-!)如:属性名字是uName,那么自动生成的set方法为:setuName,这样action是获取不到这个属性的,改成setUName就ok了,所以命名很重要,否则带来N多麻烦;

5、将mapBean属性的getter方式上设置annotation,如下:

@JSON(serialize = false)public MapBean getMapBean() {    return mapBean;}

?

前台页面部分代码:

$.ajax({               url :'/test/showJson.action',  //后台处理程序               type:'post',    //数据发送方式               cache: false,   //是否缓存               dataType:'json',   //接受数据格式               data:"sid="+sid,   //要传递的数据(参数)               success:_change  //回传函数(这里是函数名)});function _change (json) {    $("#sDIV").removeClass();    $("#pre").removeClass();    $("#she").removeClass();    $("#sDIV").attr("style",json.sMap.style);    $("#pre").attr("style",json.preMap.style);    $("#she").attr("style",json.sheMap.style);    $("#sDIV").attr("id",json.sMap.id);    $("#pre").attr("id",json.preMap.id);    $("#she").attr("id",json.sheMap.id);    }

?



后台struts2(action及配置文件)部分代码:

加入2个包struts2-json-plugin-2.2.1.jar、json-lib-2.1-jdk15.jar

public String ajaxShowJson() {    try {        mapBean = testService.getTest(sId);    } catch (Exception e) {        e.printStackTrace();    }    return SUCCESS;}<package name="test_Json" extends="json-default">          <action name="showJson" method="ajaxShowJson">            <result  name="success" type="json">            <param name="root">mapBean</param>            </result>        </action></package>
?

?

热点排行
Bad Request.