继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

struts2 jquery ajax 局部刷新遇到的各种问题

慕用4979188
关注TA
已关注
手记 266
粉丝 63
获赞 531

   我们的网站一开始都是由前台提交表单到action,每次一个小操作整个页面都会刷新,影响用户体验,这次由我实现部分功能的局部刷新,但是初学ajax遇到不少问题

1、我们在struts.xml外扩展了一个xml来写json类型传值的action配置,我改完后直接新写了一个:

<action name="addAccount2"  class="random1.action.addAccount2"><result name="showAccount" type="json"><param name="root">list</param></result></action>

但是忘了删掉原来的导致出错:      

<!-- <action name="addAccount2"  class="random1.action.addAccount2"><result name="nextaction" type="chain" >account</result><result name="failure" type="freemaker">/error.jsp</result></action> -->

 

 

2、json传送数据后全变为小写

我在action里把取到的数据(list)转换成JSON,success函数里循环读取json的数据,但是在把新的内容append到相应的块里的时候,list里的对象属性首字母都是大写的,append的时候我自然写成大写,然而发现取到的都是undefined。查阅资料后,发现别人都是改成小写的,我改为小写的之后就正确了。

 

3、局部刷新后,相应块的js失效

本来有个下拉的js,局部刷新后居然失效了,

 

$(document).ready(function(){$("ul.expmenu li > div.header").click(function(){var arrow = $(this).find("span.arrow");alert("arrow");if(arrow.hasClass("up")){arrow.removeClass("up");arrow.addClass("down");}else if(arrow.hasClass("down")){arrow.removeClass("down");arrow.addClass("up");}$(this).parent().find("ul.menu").slideToggle();});});

解决无果后,只好把该效果放到了onclick事件里:

 

<script>function showcontent(id){//alert(id);var str="list"+id;/* $("div").children(".list").hide();$("#"+str).show(3000); */var arrow = $("#"+id).find("span.arrow");if(arrow.hasClass("up")){arrow.removeClass("up");arrow.addClass("down");$("#"+str).hide();}else if(arrow.hasClass("down")){arrow.removeClass("down");arrow.addClass("up");$("#"+str).show(3000);}$("#"+id).find("ul.menu").slideToggle();}</script>

 

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP