`
NobleBaron
  • 浏览: 43927 次
社区版块
存档分类
最新评论

Ajax把后台集合输出到前台页面

阅读更多

问题:用ajax把后台的集合输出到前台页面

 

1.看到网上用JSON的,感觉稍微也是有点麻烦

2.利用DWR把后台的集合取出很简单,难点在于,怎么把大量的数据漂亮的输出出来,和在js中大量的拼凑代码(集合数据和html标签的拼凑),显然更麻烦,而且更容易出错

 

解决:利用jquery

思路:

1.和平常输出集合是一样的,首先把集合输出到一个页面,这个页面只负责显示集合输出信息

2.然后利用jquery把这个页面追加到我们的搜索页面

 

下文中出现的几个页面:

1.employee_info.jsp,搜索页面,利用下拉列表搜索和下面部分显示员工信息(ajax)

2.employeeInfo.jsp承载输出的集合,这个页面口ajax追加到employee_info.jsp的id为results的DIV中

3.用到技术struts2

 

说明:

其实用什么技术后去后台集合都一样,只要把请求的资源改下就OK

 

代码:

 

1.我们的搜索页面employee_info.jsp

 

 

		<table>
			<tr>
				<td>
					请选择员工所在部门:
				</td>
				<td>
				<!-- 这是一个下拉列表,在内容改变的时候提交事件 -->
					<select name="employee.department.departmentId"
						onchange="getDepar(this.value)">
						<c:forEach items="${departmentList}" var="department">
							<option value="${department.departmentId}">
								${department.departmentName}
							</option>
						</c:forEach>
					</select>
				</td>
				<td>
				</td>
			</tr>
		</table>
		<!--负责接收代码的DIV-->
		<div id="results">
		</div>
 

 

2.js函数页面

 

 

	function getDepar(id) {
		//把前面查出来的数据清掉
		$("#results").html(""); 
		$.ajax( {
			//请求的资源,我用的struts2,用什么都一样html也可以
			url : "employeeAction_getByDep.action?departmentId=" + id,
			cache : false,
			success : function(html) {
			//把结果页面追加到id为results的DIV
				$("#results").append(html);
		}
		});
	}
 

 

3.后台获得员工集合处理

 

 

	public String getByDep() {
		//获得该部门的员工的集合
		employeeList = employeeService.getByDepartment(departmentId);
		//获得集合后跳到的地址,这里的employeeInfo.jsp和employee_info.jsp不是一个页面
		resultLocation = "employeeInfo.jsp";
		return "goto";
	}
 

4.集合显示页面employeeInfo.jsp(与employee_info.jsp不是一个页面)

 

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">
		<title>这是搜索部门下的员工列表的输出页面,这个标题不会输出,它只会在搜索页面中的一个标签(我用的DIV)中显示</title>
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
	</head>
	<body>
		<c:if test="${empty requestScope.employeeList}">此部门没有员工</c:if>
		<c:if test="${requestScope.employeeList ne null}">
			<table>
				<tr>
					<td>
						登录名
					</td>
					<td>
						姓名
					</td>
					<td>
						职位
					</td>
					<td>
						所在部门
					</td>
					<td>
						状态
					</td>
				</tr>
				<c:forEach items="${requestScope.employeeList}" var="employee">
					<tr>
						<td>
							${employee.employeeLoginName }
						</td>
						<td>
							${employee.employeeName }
						</td>
						<td>
							${employee.roler.rolerName }
						</td>
						<td>
							${employee.department.departmentName }
						</td>
						<td>
							${employee.employeeState.employeeStateName }
						</td>
					</tr>
				</c:forEach>
			</table>
		</c:if>
	</body>
</html>
 

提高:

 

到此为止,基本上可以完成功能了,但是有个小BUG,就是在第一次访问搜索页面(employee_info.jsp)的时候是没有数据显示的,为了提高友好性,把employeeInfo.jsp里的显示数据的代码复制到employee_info.jsp页面的id="results"的DIVd中一份

 

5.我们会把在第一次访问搜索页面的时候把第一个部门的员工也查出来

 

 

 

public String loadDep() {
		departmentList = departmentService.getAll();
		employeeList = employeeService.getByDepartment(1);// 查询部门id为1的员工,因为搜索页面默认显示的第一个就是部门ide为1的
		department = new Department(1);
		resultLocation = "employee_info.jsp";
		return "goto";
	}
 

 

 

6.employee_info.jsp添加代码

 

 

<!--负责接收代码的DIV-->
		<div id="results">
			<!-- div里的代码与接收数据的员工列表完全一样,只为第一次请求搜索部门员工的时候显示第一个部门的数据 -->
			<c:if test="${empty requestScope.employeeList}">此部门没有员工</c:if>
			<c:if test="${requestScope.employeeList ne null}">
				<table>
					<tr>
						<td>
							登录名
						</td>
						<td>
							姓名
						</td>
						<td>
							职位
						</td>
						<td>
							所在部门
						</td>
						<td>
							状态
						</td>
					</tr>
					<c:forEach items="${requestScope.employeeList}" var="employee">
						<tr>
							<td>
								${employee.employeeLoginName }
							</td>
							<td>
								${employee.employeeName }
							</td>
							<td>
								${employee.roler.rolerName }
							</td>
							<td>
								${employee.department.departmentName }
							</td>
							<td>
								${employee.employeeState.employeeStateName }
							</td>
						</tr>
					</c:forEach>
				</table>
			</c:if>
		</div>
 

 

这样就OK了。

 

转载请注明出处:http://noblebaron.iteye.com/blog/1632229

分享到:
评论

相关推荐

    AJAX,AJAXPro,Anthem实现前台调用后台代码实例

    AJAX(Asynchronous JavaScript and XML)技术的出现,极大地提升了用户体验,因为它允许页面在不刷新整个页面的情况下与服务器进行数据交换。本实例将探讨如何使用AJAX、AJAXPro和Anthem这三种不同的方法实现在前端...

    一些(许多)前台页面的集合

    本资源包含“一些(许多)前台页面的集合”,这意味着它提供了多种不同设计风格和功能的前端页面示例,适用于各种类型的网站。这些页面可能是网页设计师们在其他网站上通过积分或者其他方式获取的,旨在为用户提供...

    AJAX 想Struts2后台传送Json数据并向前台返回Json格式的数据

    在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种技术,它允许页面在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。而Struts2是一个强大的MVC(Model-View-Controller)框架,它广泛应用...

    blog 前台静态页面

    博客系统的前台页面是用户与网站互动的主要界面,它通常是静态的HTML、CSS和JavaScript文件的集合,用于展示博客文章、分类、评论等信息,并提供用户友好的交互体验。在这个名为"blog前台静态页面"的项目中,我们...

    ext 前后台数据交互

    Ext.Ajax.request方法是Ext提供的一种异步调用后台服务的方式,该方法可以将前台的请求发送到后台,并将后台的响应返回到前台。该方法可以传递参数,例如url、params、success、failure等。 在上面的代码中,我们...

    CS取前台INPUT值

    "CS取前台INPUT值"这个主题涉及到如何从Web页面的前端获取用户输入的数据,并在C#后台处理这些数据。这在办公自动化(OA)系统和其他需要用户交互的应用程序中是非常常见的需求。 首先,我们需要理解Web页面的基本...

    Jquery+asp.net后台数据传到前台js进行解析的方法

    ### Jquery+***后台数据传到前台js进行解析的方法知识点总结 在Web开发中,前后台数据交换是一个常见且重要的环节。*** 作为服务器端技术,结合 jQuery 这一客户端库,可以实现灵活的数据交互。本文详细阐述了如何...

    详谈 Jquery Ajax异步处理Json数据.

    1. Ajax与异步处理概念:异步处理指的是前台页面的JavaScript能够调用后台方法,而不需要刷新页面即可与服务器交互数据,这一技术改变了传统网页必须通过刷新才能提交数据、接收结果的交互方式。Ajax(Asynchronous ...

    jquery ajax后台返回list,前台用jquery遍历list的实现

    在讨论jquery ajax后台返回list, 前台用jquery遍历list的实现时,我们首先需要了解几个关键概念和知识点。jQuery是一个快速、小巧、功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互,使得...

    仿猫眼前台+后台项目.rar

    总的来说,"仿猫眼前台+后台项目"是一个使用现代Web技术构建的全栈应用,前端以SPA模式提高用户体验,后台借助Node.js提供服务,管理界面使用EasyUI简化开发,数据存储利用MongoDB的灵活性。这样的组合为开发高效、...

    asp输出json实例,json.asp

    `ajax返回json格式数据`是指客户端使用AJAX技术向服务器发送异步请求,服务器接收到请求后处理数据,然后返回JSON格式的响应。在JavaScript中,可以使用`XMLHttpRequest`对象或现代浏览器的`fetch` API实现这一过程...

    HTML5前台框架

    AJAX(Asynchronous JavaScript and XML)是现代Web开发中的一个重要技术,它允许前端与后台进行异步数据交换,无需刷新整个页面。在HTML5前台框架中,AJAX常用于实现动态加载内容、表单提交等操作,大大提升了用户...

    js传参数到后台读取数据再传到前台的例子

    在JavaScript(JS)中,与后台交互通常涉及Ajax技术,这是一种在不刷新整个页面的情况下从服务器获取数据的方法。本文将详细介绍如何使用JavaScript传递参数到后台,读取数据库数据,然后将这些数据返回到前端进行...

    Ajax-shoppingPro.zip

    由于有实现数据库和后台模块等功能,通过AJax请求完成整个前台功能的数据交互, 后期再考虑实现一个后台管理系统及数据库系统,还有前原材料,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、...

    疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码

    《疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码》 在.NET开发领域,权限设计是构建任何大型应用系统的基础,它涉及到用户访问控制、角色分配、操作授权等多个关键环节。这个压缩包提供了一个C#...

    订餐管理系统+前台+后台都有

    本系统涵盖了从前台用户界面到后台管理功能的完整流程,旨在提供一个全面、易用的订餐解决方案。在此,我们将深入探讨这个基于Java技术的订餐管理系统,包括其核心技术和实现细节。 首先,让我们关注系统的基础架构...

    android html5 ajax jsonp json

    “项目list获取,前台展示”是关于数据获取和呈现的,这通常涉及到网络请求和数据解析。在Android应用中,经常需要从服务器获取列表数据,然后在前端显示。AJAX和JSONP在这里起到了关键作用,前者允许异步数据交换,...

    Ajax-LovingHome-Real-Estate-Platform.zip

    Ajax-LovingHome-Real-Estate-Platform.zip,基于springboot MyBatis FreeMarker redis nginx Echarts druid等技术的JavaWeb项目------恋家房产平台(采用B/S架构,项目包含前后台,分为前台展示系统及后台管理系统。...

    Node.js-基于node.jsMongodb构建的后台系统

    6. 设计前端页面,使用Elm编写组件,通过Ajax/Fetch请求后端接口获取和提交数据。 7. 调整和优化接口性能,确保前后端通信的安全性和效率。 8. 进行单元测试和集成测试,确保所有功能正常运行。 通过这个项目,...

Global site tag (gtag.js) - Google Analytics