分页与高级查询

JSP页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
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>My JSP 'index.jsp' starting page</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">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script type="text/javascript">
        function aa(pageNum){
//          alert(pageNum);
            var form1=document.getElementById("form1");
            form1.action="EmpAction.do?flag=findAll&pageNum="+pageNum;
            form1.submit();
        }
    </script>

  </head>

  <body>
    欢迎:${ee.empName }
    <a href="EmpAction.do?flag=findAll">查询全部</a>
    <c:if test="${list!=null }">
        <form action="EmpAction.do?flag=findAll" method="post" id="form1">
            姓名:<input type="text" name="empName" value="${e.empName }">
            部门:<input type="text" name="deptName" value="${e.deptName }">
            生日:<input type="text" name="birthday" value="${e.birthday }">
            <input type="submit" value=" submit ">
        </form>
        <table>
            <tr>
                <td>id</td>
                <td>姓名</td>
                <td>部门</td>
                <td>生日</td>
            </tr>
            <c:forEach items="${list }" var="e">
            <tr>
                <td>${e.empId }</td>
                <td>${e.empName }</td>
                <td>${e.deptId }</td>
                <td>${e.dept.deptName }</td>
                <td>${e.birthday }</td>
            </tr>
            </c:forEach>
            <tr>
                <td>共${p.totalSize }条共${p.totalPage }页 第${p.pageNum }页
                <a href="javascript:;" onclick="aa(${p.pageNum-1 })">上一页</a>
                <a href="javascript:;" onclick="aa(${p.pageNum+1 })">下一页</a>
                </td>
            </tr>
        </table>
    </c:if>
  </body>
</html>

Service层



import java.util.List;



public interface EmpService {

    public Emp findEmpById(int id);

    public List<Emp> findAll(Emp e);

    public Emp login(Emp e);

    public int count(Emp e);
}

bean层



import java.util.Date;



public class Emp {

    private int empId;
    private String empName;
    private int sex;
    private int age;
    private int deptId;
    private Date birthday;
    private String username;
    private String password;

    private Dept dept;
    private String deptName;


    private int begin;
    private int end;


    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public int getBegin() {
        return begin;
    }
    public void setBegin(int begin) {
        this.begin = begin;
    }
    public int getEnd() {
        return end;
    }
    public void setEnd(int end) {
        this.end = end;
    }
    public Dept getDept() {
        return dept;
    }
    public void setDept(Dept dept) {
        this.dept = dept;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public int getEmpId() {
        return empId;
    }
    public void setEmpId(int empId) {
        this.empId = empId;
    }
    public String getEmpName() {
        return empName;
    }
    public void setEmpName(String empName) {
        this.empName = empName;
    }
    public int getSex() {
        return sex;
    }
    public void setSex(int sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public int getDeptId() {
        return deptId;
    }
    public void setDeptId(int deptId) {
        this.deptId = deptId;
    }



}


public class Page {

    private int pageNum;
    private int pageSize;
    private long totalSize;
    private int totalPage;

    public int getBegin(){
        return (pageNum-1)*pageSize+1;
    }

    public int getEnd(){
        return pageNum*pageSize;
    }

    public int getPageNum() {
        return pageNum;
    }
    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public long getTotalSize() {
        return totalSize;
    }
    public void setTotalSize(long totalSize) {
        this.totalSize = totalSize;
    }
    public int getTotalPage() {
        return totalPage;
    }
    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public Page(int pageNum, int pageSize, int totalSize) {
        this.pageSize = pageSize;
        this.totalSize = totalSize;
        this.totalPage = totalSize%pageSize==0?totalSize/pageSize:totalSize/pageSize+1;
        if(pageNum<=0){
            this.pageNum=1;
        }else if(pageNum>totalPage&&totalPage!=0){
            this.pageNum=totalPage;
        }else{
            this.pageNum=pageNum;
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.dao.EmpDao">
    <resultMap type="emp" id="rm">
        <id property="empId" column="emp_id"/>
        <result property="empName" column="emp_name"/>
        <result property="deptId" column="dept_id"/>
        <result property="sex" column="sex"/>
        <result property="age" column="age"/>
        <result property="username" column="username"/>
        <result property="password" column="password"/>
        <result property="birthday" column="birthday"/>
        <association property="dept" javaType="Dept">
            <id property="deptId" column="dept_id"/>
            <result property="deptName" column="dept_name"/>
        </association>
    </resultMap>
    <select id="findEmpById" parameterType="int" resultMap="rm">
        select * from emp_tb where emp_id=#{id}
    </select>



    <select id="findAll" parameterType="emp" resultMap="rm">
        select * from(
    select ee.*,rownum rn from(
    select e.emp_id,e.emp_name,e.birthday,d.dept_id,d.dept_name
     from emp_tb e inner join dept_tb d  on e.dept_id=d.dept_id
     <where>
        <if test="empName!=null and empName!=''">
            and e.emp_name like '%'||#{empName}||'%'
        </if>
        <if test="deptName!=null and deptName!=''">
            and d.dept_name like '%'||#{deptName}||'%'
        </if>
        <if test="birthday!=null">
            and e.birthday>#{birthday}
        </if>
     </where>
     ) ee )
    eee where eee.rn between #{begin} and #{end}
    </select>




    <select id="login" parameterType="emp" resultMap="rm">
        select * from emp_tb where username=#{username} and password=#{password}
    </select>




    <select id="count" resultType="int">
        select count(*) from emp_tb e inner join dept_tb d on e.dept_id=d.dept_id
    <where>
        <if test="empName!=null and empName!=''">
            and e.emp_name like '%'||#{empName}||'%'
        </if>
        <if test="deptName!=null and deptName!=''">
            and d.dept_name like '%'||#{deptName}||'%'
        </if>
        <if test="birthday!=null">
            and e.birthday>#{birthday}
        </if>
     </where>
    </select>

</mapper>

Action层




import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;



@Component
@SessionAttributes({"ee"})
@RequestMapping("EmpAction.do")
public class EmpAction {

    @Autowired
    @Qualifier("empServiceImpl")
    private EmpService es;


    public EmpService getEs() {
        return es;
    }

    public void setEs(EmpService es) {
        this.es = es;
    }

    @RequestMapping(params="flag=login")
    public String login(@ModelAttribute Emp e,ModelMap map){
        System.out.println(e.getUsername());
        Emp ee=es.login(e);
        String str=null;
        if(ee!=null){
            map.put("ee", ee);
            str="admin/index.jsp";
        }else{
            str="login.jsp";
        }
        return str;
    }
    @RequestMapping(params="flag=findAll")
    public String findAll(ModelMap map,HttpServletRequest request){
        String pageNum1=request.getParameter("pageNum");
        int pageNum=0;
        if(pageNum1!=null&&pageNum1!=""){
            pageNum=Integer.parseInt(pageNum1);
        }
        String empName=request.getParameter("empName");
        String deptName=request.getParameter("deptName");
        String birthday=request.getParameter("birthday");
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date birth=null;
        if(birthday!=null&&birthday!=""){
            try {
                birth=sdf.parse(birthday);
            } catch (ParseException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        }
        Emp e=new Emp();

        e.setEmpName(empName);
        e.setDeptName(deptName);
        e.setBirthday(birth);
        int totalSize=es.count(e);
        Page p=new Page(pageNum, 3, totalSize);

        e.setBegin(p.getBegin());
        e.setEnd(p.getEnd());
        List<Emp> list=es.findAll(e);
        map.put("e", e);
        map.put("p", p);
        map.put("list", list);
        return "admin/index.jsp";
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值