java+js+jsp用户自定义字段查询

人力资源系统常见的需求
一、给出员工所有的基本信息的字段
二、选择想要查询的字段,查询
三、再选择的字段,根据不同条件查询结果

页面一:选择字段页面


<html>
<script type="text/javascript">
function validate(){
var tree=document.getElementsByName("checkbox");
var i;
var flag = false;
for(i=0;i<tree.length&&!flag;i++){
flag = tree[i].checked;
}
if(flag)
document.query.submit();
else
alert("请您输入需要查看的选项!");
}
function checkAll(e)
{
var aa = document.getElementsByName("checkbox");
for (var i=0; i<aa.length; i++)
aa[i].checked = e.checked;
}
</script>
<body>
<form action="${pageContext.request.contextPath}/customQuery.do?method=choose" method="post" name="query">
<input type="checkbox" name="mmAll" onClick="checkAll(this);">全选
<table>
<tr>
<td><input type="checkbox" name="checkbox" value="Employee_ID" >
员工编号</td>
<td><input type="checkbox" name="checkbox" value="Employee_Name" >
员工姓名</td>
<td><input type="checkbox" name="checkbox" value="Dept_Name">
部门名称</td>
<td><input type="checkbox" name="checkbox" value="Post_Name">
职务名称</td>
<td ><input type="checkbox" name="checkbox" value="Class_Name">
岗位名称</td>
</tr>
<tr>
<td ><input type="checkbox" name="checkbox" value="Level_Name">
岗级名称</td>
<td><input type="checkbox" name="checkbox" value="Base_Salary" <%=flag?" ":"disabled"%> >
基准工资</td><!-- 用于权限的控制-->
</tr>
<tr>
<td><input type="checkbox" name="checkbox" value="Sex">
性 别 </td>
<td><input type="checkbox" name="checkbox" value="Birthday">
生 日 </td>
<td><input type="checkbox" name="checkbox" value="Native_Place">
籍 贯 </td>
<td><input type="checkbox" name="checkbox" value="Nation">
民 族 </td>
<td><input type="checkbox" name="checkbox" value="Link_Phone">
联系电话</td>
</tr>
<tr>
<td colspan="5" align="center">
<input type="button" name="Submit" value="提交" onClick="validate();">
</td>
</tr>
</table>
</form>
</body>
</html>



提交数据后,action处理自定义字段

public class CustomQueryAction extends DispatchAction {
public ActionForward choose(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String sql="select ";
List<String> displayList = new ArrayList<String>();
HttpSession session = request.getSession();
session.setAttribute("postList", null);//每次查询前清空
String[] checked = request.getParameterValues("checkbox");
for(int i=0;i<checked.length;i++){//获取自定义查询的属性列表
sql += checked[i]+",";
displayList.add(checked[i]);
}
sql =sql.substring(0, sql.length()-1)+" from V_Employee where 1=1";//从视图中查询数据
System.out.println(sql);
session.setAttribute("querySql", sql);//存入session,方便根据不同条件再查询
StaffRepolyDaoImpl staff=new StaffRepolyDaoImpl();
List postList = staff.postExecuteQuery();
session.setAttribute("postList", postList);//查询结果
session.setAttribute("display", displayList);//自定义查询的属性
System.out.println(displayList.size());
return mapping.findForward("query");
}
}

页面二:显示数据

<HTML>
<BODY>
<form action="findEmpByDef.do">
<input type="hidden" name="sql" value="<%=session.getAttribute("querySql")%>"/>
<!--查询条件。。。根据查询条件再次把之前自定义好的属性查询-->
<table>
<tr>
<td align="center"><input type="submit" value="查询"/></td>
</tr>
</table>
</form>
<br>
<table style="width:100%">
<tr class="thead">
<%List list1 = (List)session.getAttribute("display");
EmployeeHashMap hashMap = new EmployeeHashMap();
if(list1!=null){
for(int m=0;m<list1.size();m++){%>
<td><div align="center"><font style="font-weight:bold"><%=hashMap.map.get(list1.get(m))%></font></div></td>
<%}}%>
</tr>
<%List defEmp = (List)session.getAttribute("defEmp");
f(defEmp!=null){
for(int j=0;j<defEmp.size();j++){
Boolean flag = false;
EmployeeView emp = (EmployeeView)defEmp.get(j);%>

<tr align="center">
<%for(int i=0;i<list1.size()&&!flag;i++)
flag = list1.get(i).equals("Employee_ID");
if(flag){%>
<td><%=emp.getEmployee_ID()%></td>
<%flag = false;}%>

<% for(int i=0;i<list1.size()&&!flag;i++)
flag=list1.get(i).equals("Employee_Name");
if(flag){%>
<td><%=emp.getEmployee_Name()%></td>
<%flag = false;}%>
...其他属性


<% for(int i=0;i<list1.size()&&!flag;i++)
flag=list1.get(i).equals("Branch_NO");
if(flag){%>
<td><%=emp.getBranch_NO()%></td>
<%flag = false;}%>
</tr>
<% }}%>

</table>
</BODY>
</HTML>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值