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

struts2+easyui实现根据条件检索信息

阅读更多
根据不同条件或组合条件检索信息是很常用的需求,下面将在struts2+easyui的datagrid显示列表信息的前提下实现单条件或组合条件检索信息。

一、编辑控制器
//显示员工信息列表
	public void listEmpl() throws IOException{
		   //设置响应格式
		   resp.setCharacterEncoding("UTF-8");
		   
		   //获取当前用户的id
		   Empl currEmpl = (Empl) session.getAttribute("emp1");
		   int currId = currEmpl.getEid();
		   
		   //当前页
		   int offset=!"".equals(req.getParameter("page"))&&null!=(req.getParameter("page"))?Integer.parseInt(req.getParameter("page")):1;
		   
		   //查询条件:员工名称、职位、部门名称、状态
		   Pager<Object[]> pager=empService.search(empl,ajob,adept,ajobStatus,currId,offset);
			
		   //将数据存入list中,它存入的是map,这样在easyui的datagrid才能以键值对的形式获取到具体的数据
		   List<Map<String,String>> list = new ArrayList<>();
		   Map<String,String> map0 = null;
		   for (Object[] e : pager.getList()) {
			   map0=new HashMap<String, String>();
			   //在datagrid中显示的数据
			   map0.put("eid", String.valueOf(e[0]));
			   map0.put("ename", String.valueOf(e[1]));
			   map0.put("birthday", String.valueOf(e[3]));
			   map0.put("hiredate", String.valueOf(e[6]));
			   map0.put("jname", String.valueOf(e[5]));//职位
			   map0.put("dname", String.valueOf(e[4]));
			   map0.put("status", String.valueOf(e[7]));
			   //在datagrid中隐藏的数据(部门编号、职位编号、在职状态编号)
			   map0.put("did", String.valueOf(e[8]));
			   map0.put("jid", String.valueOf(e[9]));
			   map0.put("jsid", String.valueOf(e[10]));
			   list.add(map0);
		   }
		   
		   //设置总行数,行数据。
		   Map<String,Object> map = new HashMap<String, Object>();
		   map.put("total", pager.getSumRows());
		   map.put("rows", list);
		   
		   //将map转换为json格式
		   String s = JSON.toJSONString(map);
		   PrintWriter out = resp.getWriter();
		   out.println(s);
	}


二、编辑模型层
1.service
public Pager<Object[]> search(Empl empl,Job job,Dept dept,JobStatus jobStatus,int currId,int offset){
		return emplDaoImpl.search(empl,job,dept,jobStatus,currId,offset);
	}

2.emplDaoImpl
//分页查询员工信息
	public Pager<Object[]> search(Empl empl,Job job,Dept dept,JobStatus jobStatus,int currId,int offset) {
		List<Object> params=new ArrayList<>();
		StringBuffer sql=new StringBuffer();
		sql.append("SELECT A.*, ROWNUM RN from (select e.eid,e.ename,e.sex,to_char(e.birthday,'yyyy-mm-dd'),d.dname,j.jname,to_char(e.hiredate,'yyyy-mm-dd'),js.status, d.did,j.jid,js.jsid "
				+ "from t_empl e,t_dept d,t_job j,t_jobstatus js "
				+ "where e.deptno=d.did and e.job=j.jid and e.status=js.jsid  and e.eid!="+currId+" and j.jname!='董事长'");
		if(empl!=null){
			if(empl.getEname()!=null&&!"".equals(empl.getEname().trim())){
				sql.append(" and e.ename like ?");
				params.add("%"+empl.getEname()+"%");
			}
		}
		if(job!=null){
			if(job.getJname()!=null&&!"请选择该用户所属职位".equals(job.getJname().trim())){
				sql.append(" and j.jname like ?");
				params.add("%"+job.getJname()+"%");
			}
		}
		if(dept!=null){
			if(dept.getDname()!=null&&!"请选择该用户所属部门".equals(dept.getDname().trim())){
				sql.append(" and d.dname like ?");
				params.add("%"+dept.getDname()+"%");
			}
		}
		if(jobStatus!=null){
			if(jobStatus.getStatus()!=null&&!"请选择该用户所属状态".equals(jobStatus.getStatus().trim())){
				sql.append(" and js.status like ?");
				params.add("%"+jobStatus.getStatus()+"%");
			}
		}
		sql.append(" order by eid) A ");
		
		return listAsObjectArrayHaveParam(sql.toString(), offset, 10, params.toArray());
	}


三、编辑jsp
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- 1.页面引入样式 -->
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/jquery-easyui-1.4.2/themes/metro/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/jquery-easyui-1.4.2/themes/icon.css">
<!-- 2.页面引入脚本 -->
<script type="text/javascript"src="${pageContext.request.contextPath }/jquery-easyui-1.4.2/jquery-1.8.0.min.js"></script>
<script type="text/javascript"src="${pageContext.request.contextPath }/jquery-easyui-1.4.2/jquery.easyui.min.js"></script>
<script type="text/javascript"src="${pageContext.request.contextPath }/jquery-easyui-1.4.2/datagrid-detailview.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/jquery-easyui-1.4.2/locale/easyui-lang-zh_CN.js"></script> 
<!-- 3.页面引入自定义脚本 -->
<script type="text/javascript" src="${pageContext.request.contextPath }/js/userManager.js" ></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/validate.js" ></script>
<!-- 4.页面引入其他脚本 -->
<link href="${pageContext.request.contextPath }/myDatePicker_2.2/datePicker.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="${pageContext.request.contextPath }/myDatePicker_2.2/jquery.datePicker-min.js"></script>

<title>用户管理</title>
<style type="text/css">

.dv-label{
    font-weight: bolder;
    color:#15428B;
}
/*datagrid行高设置*/
.datagrid-btable tr{
	height:30px;   
}
</style>
...
<form id="searchForm">
		            员工姓名:<input type="text" id="ename" name="empl.ename"/>  
		            职位:<select id="job" name="ajob.eid" class="easyui-combobox" panelHeight="auto" >
					        <option  value="-1">请选择该用户所属职位</option>
					        <c:forEach items="${job }" var="v">
					            <option value="${v.jid}">${v.jname }</option>
					        </c:forEach>
					     </select>  
		            所属部门:<select id="dept" name="adept.did"  class="easyui-combobox" panelHeight="auto" >
						        <option  value="-1">请选择该用户所属部门</option>
						        <c:forEach items="${dept }" var="v">
						            <option value="${v.did }">${v.dname }</option>
						        </c:forEach>
						    </select>  
		            员工状态:<select id="jobStatus" name="ajobStatus.jsid" class="easyui-combobox" panelHeight="auto" >
						        <option selected value="-1">请选择该用户所属状态</option>
						        <c:forEach items="${jobStatus }" var="v">
						            <option value="${v.jsid }">${v.status }</option>
						        </c:forEach>
						    </select>      
               <a id="search" href="#" class="easyui-linkbutton" iconCls="icon-ok">筛选</a>
		   </form> 
...


四、编辑js
//搜索的点击事件
	$('#search').bind('click',function(){
		//重载datagrid.注:1.会向控制器发送请求,请求地址为在datagrid指定的url。2.参数:向控制器发送请求时包含的数据,struts2会将它们封装成相应bean对象。
		$('#dg').datagrid('load', 
				{
			      'empl.ename':$('#ename').val(),
			      'ajob.jname':$('#job').combobox('getText'),
			      'adept.dname':$('#dept').combobox('getText'),
			      'ajobStatus.status':$('#jobStatus').combobox('getText')
			    }
		);
		
		//清空、还原搜索表单中的默认选项
		$('#ename').val('')
		$('#job').combobox('setValue','-1')
		$('#dept').combobox('setValue','-1')
		$('#jobStatus').combobox('setValue','-1')
	})


大功告成,效果如下:


  • 大小: 20.1 KB
0
1
分享到:
评论

相关推荐

    Struts+Spring+Hibernate+EasyUI做的学生信息管理系统,绝对的货真价实。

    ### Struts+Spring+Hibernate+EasyUI 学生信息管理系统详解 #### 一、系统概述与背景 在当今数字化时代,高效便捷的学生信息管理成为学校信息化建设的重要组成部分。本项目——“Struts+Spring+Hibernate+EasyUI ...

    easyui+ssh(增删改模糊查询,导出数据)

    - **增删改操作**:在EasyUI的表格组件中,可以通过添加编辑和删除按钮,结合后端的Struts2 Action实现对数据的增删改操作。 - **数据导出**:后端可以使用Apache POI库来生成Excel文件,然后通过HTTP响应返回给...

    Spring+Hibernate+Struts+ajax+jQuery easyUI

    标题 "Spring+Hibernate+Struts+ajax+jQuery easyUI" 提到的是一个经典的Java Web开发技术栈,这个组合被广泛用于构建复杂的企业级应用程序。让我们深入探讨这些技术及其相互作用。 1. **Spring**:Spring 是一个...

    SSH+shiro+easyUI实战项目案例

    解压数据库脚本,根据`jdbc.properties`配置文件调整数据库连接信息,然后运行项目,即可体验到SSH+Shiro+EasyUI的完整功能。这个实战案例对于学习和理解Java Web开发流程、各组件间协作以及企业级应用的构建具有很...

    基于最新的SSH(Struts2.3.12+Spring3.2.2+Hibernate4.20)+ jquery EasyUI1.3.2的担保公司OA系统

    Struts2是MVC(Model-View-Controller)设计模式的一个实现,用于处理用户请求并控制应用程序流程。Struts2.3.12版本包含了一些重要的增强,如性能优化、错误修复和对最新技术的支持。它提供了丰富的拦截器...

    管理系统系列--基于SSH+easyUI+ActiveMQ+MySQL的校园宿舍管理系统。 分为系统管理员、楼宇管理.zip

    在本系统中,MySQL存储了校园宿舍管理的各种数据,如学生信息、宿舍分配、楼宇管理等,提供高效的数据存储和检索能力。Spring框架的集成使得数据库操作变得更加便捷和可控。 系统分为“系统管理员”和“楼宇管理”...

    java权限框架_ssh+shiro+jbpm4.4+lucene+easyui

    在本项目中,可能用于实现对用户、角色、权限等信息的快速检索,提升系统的查询效率和用户体验。 【EasyUI前端框架】 EasyUI是一个基于jQuery的UI组件库,提供了一系列美观的界面组件,如表格、下拉框、对话框等,...

    毕设课设-ssh购物商城java鲜花电商

    使用EasyUI实现后台对商品分类、商品信息、用户信息、订单信息的管理,包括增删改查,文件上传等。 项目适用人群 正在做毕设的学生,或者需要项目实战练习的Java学习者 开发环境 jdk 8 intellij idea tomcat 8.5.40...

    车辆配送管理系统 easyui jdbc struts2

    Struts2整合了Model、View和Controller,实现了请求驱动的页面跳转,提供了强大的Action类来处理业务逻辑,并通过Interceptor拦截器机制增强了灵活性和可扩展性。在本系统中,Struts2起到了承上启下的作用,接收前端...

    双鱼林SSH2_EasyUI图书管理系统学习版

    这个系统结合了SSH2(Struts2、Spring、Hibernate)框架和EasyUI前端库,旨在提供一个高效且用户友好的图书信息管理和检索平台。下面将详细介绍这些关键技术点。 1. SSH2框架: - **Struts2**:这是一个用于构建...

    jquery easy UI+spring3.0+struts2.1.8.1+hibernate3.5整合的CRM包括所有Jar包

    同时,EasyUI的前端组件通过Ajax与Struts2的Action进行通信,展示和编辑由Hibernate从数据库检索的数据。 在实际项目中,"lib"目录下的所有Jar包包含了这些技术所需的类库,包括jQuery EasyUI的JavaScript和CSS文件...

    java简历项目_java简历.doc

    【天华物流管理系统】采用Struts2+Spring+Hibernate+MySql+EasyUI,刘鸿羽在此项目中涉及需求调研、设计、数据库设计、系统开发和测试。他主要负责基础设置(如取派员设置、区域设置、管理定区)、权限管理和用户...

    双鱼林SSH2_EasyUI图书管理系统 v1.0-源码.zip

    此“双鱼林SSH2_EasyUI图书管理系统 v1.0”源码的实现,可能包括以下几个主要部分: 1. 用户登录模块:使用Struts2处理HTTP请求,通过Spring管理用户会话,验证用户身份。 2. 图书管理模块:Hibernate2用于数据库...

    学生管理系统

    4. 查询:支持按各种条件(如姓名、学号等)检索学生信息,结果以分页形式展示。 5. 分页:通过EasyUI的表格组件实现数据的分页加载,提高页面加载速度。 总结,这个学生管理系统采用了一套成熟的Java Web开发技术...

    人工智能-项目实践-信息检索-需求征集系统,实现功能有需求填报,需求审核,统计分析,需求检索(使用jsp+ssh框架+jacks

    标题中的“人工智能-项目实践-信息检索-需求征集系统”表明这是一个基于人工智能技术,用于信息检索和需求收集的系统项目。SSH、Jackson和EasyUI框架的提及,揭示了该系统的技术栈,主要由Spring、Struts和Hibernate...

    java开发工程师-xx简历.docx

    2. **汽车出租管理系统**:该项目采用B/S架构,SSM(Spring、Struts2、Mybatis)框架,实现了汽车出租业务和内部员工用车管理。工程师负责了信息管理和汽车出租模块,包括客户验证、汽车选择、出租单生成等功能。他...

    Easyui的combobox实现动态数据级联效果

    ItemManageAction 类是基于 Struts2 框架的一个控制器,用于处理与 Easyui Combobox 相关的动态数据级联请求。这个类的主要功能包括: 1. **Categorytbl 方法**: 这个方法用于获取一级分类(栏目)的数据。`...

    程序员面试个人简历.pdf,这是一份不错的文件

    - **新时速物流系统**:使用jQuery EasyUI前端框架,实现公共信息、取派、中转业务和路由管理等功能。通过自定义拦截器进行权限控制,整合SSH框架处理大量业务数据,使用SVN进行版本控制,PowerDesigner做模型设计...

    双鱼林SSM_EasyUI公司员工管理系统 v1.0-源码.zip

    Struts是另一种Java Web框架,主要用于 MVC(Model-View-Controller)设计模式的实现。它在系统中扮演着控制器的角色,接收HTTP请求,调用相应的业务逻辑,然后将结果传递给视图进行展示。在这个系统中,Struts可能...

Global site tag (gtag.js) - Google Analytics