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

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
分享到:
评论

相关推荐

    基于net的超市管理系统源代码(完整前后端+sqlserver+说明文档+LW).zip

    功能说明: 环境说明: 开发软件:VS 2017 (版本2017以上即可,不能低于2017) 数据库:SqlServer2008r2(数据库版本无限制,都可以导入) 开发模式:mvc。。。

    LABVIEW程序实例-公式节点.zip

    labview程序代码参考学习使用,希望对你有所帮助。

    大米商城开源版damishop(适合外贸)

    大米外贸商城系统 简称damishop 完全开源版,只需做一种语言一键开启全球133中语言自动翻译功能,价格实现自动汇率转换,集成微信支付宝 paypal以及国外主流支付方式,自带文章博客系统。 软件架构 基于MVC+语言包模式,增加控制台,API导入产品方便对接其他系统(带json示例数据)。 使用要求 PHP7.4+ MYSQL5.6+ REDIS(可选) 安装方法 composer install 打开安装向导安装 http://您的域名/install 特色 1、缓存层增加时间与批量like删除 2、API产品导入方便对接其他系统 3、增加控制台命令行,命令行生成语言翻译包 4、后台一键开启自动翻译模式,支持全球133中语言,由于google代理翻译需要收费,这个功能需要付费。 5、可选购物车与ajax修改购物车产品 6、一键结算checkout 7、增加网站前台自定义路由 方便seo 更新日志 v3.9.7 集成鱼码支付接口,方便个人站长即使收款到账使用 v3.9.3 更新内容 1:增加ueditor与旧编辑器切换 2:增加可视化布局插

    LABVIEW程序实例-通过全局变量接收数据.zip

    labview程序代码参考学习使用,希望对你有所帮助。

    LABVIEW程序实例-日历控件.zip

    labview程序代码参考学习使用,希望对你有所帮助。

    毕设和企业适用springboot人工智能客服系统类及旅游规划平台源码+论文+视频.zip

    毕设和企业适用springboot人工智能客服系统类及旅游规划平台源码+论文+视频

Global site tag (gtag.js) - Google Analytics