最近在做一个系统,在此过程中,遇到了一个问题,就是如何能不刷新整个页面,
从而动态的能从数据库中获得图片以及其他有用的需要显示以及其他的信息到页面。
当然离不开jquery的$.ajax();
这里直接说我的解决方法:($.ajax()方法不多谈)
首先,要用到ajax():
function setInfo(num) { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "getInfo_bz?stuNum=" + num, dataType:"json", success:function(data){ //转化json格式的数据。 var obj = eval(data); //将备注显示在textarea中 $("#bz").val(data.bz); //将textarea中属性设为disable不可读 $('#bz').attr("disabled","disabled"); }, error: function(){ alert(XMLResponse.responseText); alert(arguments[1]); alert("1nulllllll"); } }); }其次,在getInfo的action中,我开始一直遇到一个问题,那就是,虽然能正确的从数据库中得到所需要的数据
但是一直传不过来,一直会报有json引起的session is close的错误(我全部解决后,也无法理解为什么会这样报)
这里我的struts.xml中的配置:(其他的部分就未列出了)
<result name="success" type="json"> <param name="root">map</param> </result>而我的action中要传回的也是map,后来通过查资料,才意识到,你要传map,但是struts2怎么知道你要传的是哪个map呢?
所以,还需要在对于的action中加些东西:
首先:private static final long serialVersionUID = 1L;
其次,把那些在对应action类中的,你不需要回传到ajax中的变量的get方法上面加上@JSON(serialize = false),来表示你不需要传它。
然后就我的程序,我的$.ajax()就正常了。
第二个就是图片,对就是如何利用ajax()来传输图片了,这个看我的下篇博文:关于在struts2中利用jquery中如何动态从数据库中加载图片并显示