我遇到一个需求,可能大伙也遇见过这样的需求,那就是在页面上提供省和市的列表供用户选择输入,当选择某个省时,市的列表立即改变成这个省里的城市,很简单吧,刚开始时想调用list的onChange方法直接到后面取数据,然后刷新整个页面,改变城市列表的内容,考虑到网络后台处理时要执行很多无关的逻辑处理,所以想到只刷新城市列表那一个控件,那就请出名躁一时的ajax吧!
实现这个功能并不复杂,结合struts一会工夫就搞定了:下面是我的做法
首先描述一下AJAX在Struts框架中的位置和作用:
STRUTS框架实现了MVC模式,大家都知道这个模式,也知道STRUTS数据流的过程,简单讲,VIEW.jsp发送请求到CONTROL :action.do,action.do来选择业务处理模块,在业务处理模块中更新MODEL:model.java ,并请求action.do选择VIEW.jsp,发送回客户VIEW,而AJAX在VIEW端发送xmlhttprequest给action.do,然后像普通处理一样更新MODEL,不同的是,要由MODEL来生成带有返回数据的XML给客户端VIEW,可以看到,这个过程省略了选择VIEW.jsp的过程,所以,客户端没有刷新页面,但数据已经传到VIEW了。
我的应用中稍微改变了一下做法,处理完请求后,再交给ACTION来选择VIEW.jsp,不过这个jsp文件和页面的相同,这样在客户端就收到一个和现有页面只有一小部分不同的HTML代码,那部分不同的代码就是要在页面上更新的数据,只要在得到数据后将那部分数据分离出来显示在页面上,就可以实现无刷新页面的更新效果了。。。
jsp代码:
- <script type="text/javascript">
- function getCity()
{
//alert("begin1");
retrieveURL('/xxxx/netinfo.do?method=getCity','NetinfoForm');//document.forms[0].submit();
}
- </script>
- <script type="text/javascript" src="/xxxx/scripts/Ajax.js"></script>
- <tr bgcolor="#F7FDFD">
- <td class="right">省份: td>
- <td>
- <html:select property="province" size="1" onchange="javascript:getCity();" >
- <logic:iterate id="prov" name="NetinfoForm" property="province_list">
- <%String nid= ((Province)prov).getId().toString();%>
- <html:option value="<!---->"><bean:write name="prov" property="name"/>html:option>
- logic:iterate>
- html:select>
- td>
- <td class="right">城市: td>
- <td>
- <span name="change" id="change">
- <html:select property="city" size="1" >
- <logic:iterate id="cit" name="NetinfoForm" property="city_list">
- <%String nid= ((City)cit).getId().toString();%>
- <html:option value="<!---->"><bean:write name="cit" property="name"/>html:option>
- logic:iterate>
- html:select>
- td>
- tr>
action.do代码
- public ActionForward getCity(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
- int provinceId=Integer.parseInt(request.getParameter("province"));
- ArrayList<city></city> city_list=(ArrayList<city></city>)cityManager.getCityByProvince(provinceId);
- object.setCity_list(city_list);
- initForm(form, request, object);
- mapping.findForward(SUCCESS);
-
关键部分:ajax.js代码:
js 代码
分享到:
- 2007-08-15 15:12
- 浏览 4322
- 评论(3)
- 论坛回复 / 浏览 (3 / 8069)
- 查看更多
相关推荐
在这里,"struts2+jquery无刷新取后台数据"的实现主要是利用Ajax技术,结合Struts2的Action和Result,实现在用户界面上的无刷新交互。 首先,登录功能是Web应用的基础。在Struts2中,我们可以创建一个登录Action类...
总结来说,Struts2和jQuery的结合使用,使得开发者能轻松实现Web应用的局部刷新,提供更流畅的用户体验,同时保持后端逻辑的清晰和高效。在实际项目中,理解这两者的原理和配合方式是提升开发效率的关键。
#### JavaScript与Struts2的结合 在Struts2应用中,JavaScript主要用来处理前端的交互逻辑。例如,可以通过JavaScript来实现动态加载数据、表单验证、AJAX请求等功能。特别是在需要弹出模态对话框时,JavaScript的...
在现代Web开发中,异步刷新(Ajax)技术已经成为一种不可或缺的交互方式,它使得页面无需完全刷新就能更新部分数据,提升用户体验。本实例将详细讲解如何利用jQuery库与Struts2框架结合,实现异步刷新功能。jQuery以...
本主题主要关注的是如何在Struts框架下结合Ajax实现无页面刷新的验证码验证功能,以及在JSP页面中处理验证码的部分。 首先,我们来理解一下Struts框架。Struts是一种基于MVC(Model-View-Controller)设计模式的...
结合Struts框架,我们可以实现后端服务与前端交互,返回JSON数据,使得前端JavaScript能够动态地处理这些数据,而无需整个页面重新加载。下面我们将详细探讨这一技术。 ### 1. Ajax基础 Ajax(Asynchronous ...
在这个项目中,"Struts2无刷新实现登陆退出"是通过整合Struts2框架、JavaScript库如jQuery和Ajax技术,以及OGNL(Object-Graph Navigation Language)表达式来实现的一种优化用户体验的登录和退出功能。 首先,让...
在Struts2的环境中,jQuery可以用于前端的用户界面交互,例如在页面上添加、删除、修改或查询数据,而无需刷新整个页面。它通常与Ajax一起使用,以实现异步数据通信。 **Ajax** (Asynchronous JavaScript and XML) ...
标题“struts+js”和“struts+jquery示例”暗示我们将探讨如何将Struts与JavaScript以及jQuery结合使用,以创建更强大的Web应用。 首先,Struts框架的核心组件包括Action类、ActionForm、Struts配置文件和JSP页面。...
Struts2和jQuery是两种非常重要的Java Web开发技术。Struts2是一个强大的MVC框架,它简化了基于Java的...同时,结合Struts2的Action和jQuery的Ajax功能,可以方便地处理后台逻辑和前端交互,实现更复杂的Web应用功能。
通过Ajax可以实现在不刷新页面的情况下与服务器进行数据交互,从而提升用户体验。本文将详细介绍如何利用Ajax与Struts框架结合来实现无刷新验证用户名是否存在的功能。 #### 一、理解Ajax技术 Ajax(Asynchronous ...
Ajax(异步JavaScript和XML)技术则为Web应用程序带来了增强的用户体验,允许页面部分刷新,而无需整体刷新整个页面。在Struts2框架中实现Ajax功能,可以让用户在注册时实时验证用户名是否已经存在,从而提高用户...
本项目采用jQuery、Struts2和Ajax技术实现了这样一个功能,用户可以在不重新加载整个页面的情况下查看不同页的数据,提高了交互效率。 ### 1. jQuery jQuery是一个强大的JavaScript库,简化了JavaScript的DOM操作...
在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种技术,它允许页面在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。而Struts2是一个强大的MVC(Model-View-Controller)框架,它广泛应用...
"Struts2+JSON+jQuery实现Ajax数据的存取"就是一个典型的示例,它结合了强大的MVC框架Struts2、轻量级的数据交换格式JSON以及高效的前端库jQuery,以实现网页上的无刷新数据交互。下面将详细介绍这三个技术及其在...
例如,使用jQuery库发送异步请求到服务器,获取数据并在不刷新整个页面的情况下更新UI。 8. **图片上传**:在SQL Server中,图片通常以BLOB(Binary Large Object)类型存储。需要编写Java代码处理文件上传,例如...
Struts2、DWR(Direct Web Remoting)和Ajax是Web开发中的关键技术,它们结合使用可以实现页面的局部刷新,提高用户体验。Struts2是一个基于MVC设计模式的Java Web框架,DWR则是一个用于简化AJAX开发的库,允许前端...
在IT行业中,Ajax(Asynchronous JavaScript and XML)与Struts2框架的结合使用,是实现Web应用程序无刷新交互的关键技术。这种技术允许用户在不重新加载整个网页的情况下,与服务器交换数据并局部更新页面,极大地...
在Java Web中,Ajax通常结合JSON(JavaScript Object Notation)数据格式使用,因为JSON轻量且易于解析。开发者需要学习XMLHttpRequest对象的使用,以及在JavaScript中处理JSON数据的方法。 在实际案例中,我们可能...
在本文中,我们将深入探讨如何将Ajax技术与Struts2框架结合,实现异步请求数据。这种方式能够提高用户体验,因为它允许后台处理数据而无需刷新整个页面。以下是对关键知识点的详细说明: 1. **Ajax(Asynchronous ...