跳转的好处、跳转与ajax的结合、跳转与ajax_jQuery的结合
这个隐藏的功能,我们最后实现了 点击隐藏按钮,跳出确认提示框,点击确认调用jQuery中的hide函数,以类似于ajax的方式实现列表中行的隐藏,但用了跳转的方式将id 传到了Controller中,然后一层一层把status的值update了。然后Controller中有重定向,对页面进行了刷新,自动跳转到了隐藏列表。
这个流程中,其实没有用到ajax,只是用了jQuery中的hide函数实现了隐藏,然后普普通通的传递参数改变状态。为什么采用这种方式?是因为我们 在页面顶端添加了已隐藏的数目,并且还要实现自动跳转。 这两个,我们都需要对页面进行刷新,尤其是跳转页面,当然不是ajax这种局部更新网页的技术可以做到的,原因我们之前也阐述过了, 是因为,重定向时,ajax会将重定向作为一个值返回给ajax代码,而不是对整个页面做操作。 自然,ajax存在的目的就不是为了刷新页面, 跳转这种刷新页面的操作,怎么能用ajax来实现呢? 这里也是一个值得反思的地方: 我们不想刷新页面达到操作,要局部更新网页,要用到ajax这种技术。 而我们要刷新网页的时候,就需要回归传统,用回刷新页面的方法。所以,并不是ajax高端就怎么样,每种技术都有各自的优劣, 技术只是工具,我们需要达到什么样的操作,就采用哪种技术,这样才是对的。
而在不需要顶端显示已隐藏条数、不需要实现自动跳转的时候,我们大可以用ajax,因为只需要hide,只需要传递参数。 既然都是传递参数,不刷新页面传递参数的ajax和需要刷新页面才能传递参数的跳转,我们当然选择前者,这里就体现出了ajax的价值。
所以最后我们的实现方式其实特别普通,就是JS+JAVA。只不过JS编程时,使用了jQuery简化了一下而已!
原先的代码如下: JSP: function toHide(id){ if(confirm("确认要隐藏吗?")){ $("#tr"+id).hide(); updateStatus2Hide(id); } } function toShow(id){ if(confirm("确认取消隐藏吗?")){ $("#tr"+id).hide(); updateStatus2Show(id); } } function updateStatus2Hide(id){ $.post("/ngtradebackend/complaint_manage/updatestatus2hide.html","id="+id); } function updateStatus2Show(id){ $.post("/ngtradebackend/complaint_manage/updatestatus2show.html","id="+id); } Controller中: /** * 隐藏投诉 * @param request * @param response * @return * @throws NgTradeBackendException * @throws IOException */ public ModelAndView updateStatus2Hide(HttpServletRequest request,HttpServletResponse response) throws NgTradeBackendException{ Long id=webStringUtil.getLong(request,"id"); complaintManageService.updateComplaint(id,6,null,null); //点击隐藏后自动跳转到隐藏列表 return null; } /** * 取消隐藏 * @param request * @param response * @return * @throws NgTradeBackendException */ public ModelAndView updateStatus2Show(HttpServletRequest request,3,null); //点击取消隐藏后依然停留在隐藏列表 return null; } 讲到这里,我们也可以认识到:jQuery正如它的定义一样,是一个 JavaScript 函数库。所以我们才用了它的hide函数做隐藏功能, 而ajax说白了也是js编程,当然可以用jQuery这个函数库来简化编程。 简言之,jQuery这个JS函数库简化了与JS编程有关的很多东西,包括ajax!! 这样看来,jQuery真是个好东西! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |