jsp 条件查询、列表分页

时间:2023-02-27 07:51:21

条件查询

dao

    //根据搜索条件筛选数据
public List<User> GetUserBySearch(String userName, String sex) throws SQLException {
String sql = "select * from User where 1=1 ";
List<String> params = new ArrayList<String>();
if (userName != null && userName != "") {
sql += " and UserName like ?";
params.add("%"+userName+"%");
}
if (sex != null && sex != "") {
sql += " and sex = ?";
params.add(sex);
}
QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
List<User> users = qr.query(sql, new BeanListHandler<User>(User.class), params.toArray());
return users;
}

service

   public List<User> GetUserBySearch(String userName,String sex) throws SQLException {
UserDao dao = new UserDao();
return dao.GetUserBySearch(userName,sex);
}

userList servlet

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String userName = request.getParameter("userName");
String sex = request.getParameter("sex"); UserService service = new UserService();
List<User> userList = null;
try {
//userList = service.GetAllService();
userList = service.GetUserBySearch(userName,sex);
} catch (SQLException e) {
e.printStackTrace();
} request.setAttribute("userName",userName);
request.setAttribute("sex",sex); request.setAttribute("userList", userList);
request.getRequestDispatcher("userList.jsp").forward(request,response);
}

userList.jsp

<%@ page import="com.david.domain.User" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<div>
按用户名称搜索:<input id="txtUserName" value="${userName}"> &nbsp;
按用户性别查找:<select id="selSex">
<option value="">全部</option>
<option value="男">男</option>
<option value="女">女</option>
</select> &nbsp;
<button type="button" onclick="search()">搜索</button>
</div>
<script>
//设置默认值
window.onload = function (){
for(var i = 0;i<document.getElementById("selSex").options.length;i++){
var option = document.getElementById("selSex").options[i];
if(option.value == "${sex}"){
option.selected = true;
}
}
} function search(){
var userName = document.getElementById("txtUserName").value;
var sex = "";
for(var i = 0;i<document.getElementById("selSex").options.length;i++){
if(document.getElementById("selSex").options[i].selected){
sex = document.getElementById("selSex").options[i].value;
}
}
location.href='userList?userName='+userName+"&sex="+sex;
}
</script>
<table>
<tr>
<th>用户ID</th>
<th>用户名</th>
<th>用户密码</th>
<th>用户年龄</th>
<th>用户性别</th>
<th>操作</th>
</tr>
<%
if (request.getAttribute("userList") != null) {
%>
<%for (User u : (List<User>) request.getAttribute("userList")) {%>
<tr>
<td><%=u.getUserId()%>
</td>
<td><%=u.getUserName()%>
</td>
<td><%=u.getPassWord()%>
</td>
<td><%=u.getAge()%>
</td>
<td><%=u.getSex()%>
</td>
<td>
<a href="GetUserById?userId=<%=u.getUserId()%>">修改</a>
<a href="DeleteUser?userId=<%=u.getUserId()%>">删除</a>
</td>
</tr>
<%}%>
<%}%>
</table>
<a href="AddUser.jsp">添加用户</a>
</body>
</html>

列表分页

在domain中创建pageBean实体

package com.david.domain;

import java.util.List;

public class PageBean<T> {
//当前页
private int curPage;
//当前显示条数
private int pageSize;
//总页数
private int totalPage;
//总条数
private int totalCount;
//展示的数据
private List<T> Data; public int getCurPage() {
return curPage;
} public int getPageSize() {
return pageSize;
} public int getTotalPage() {
return totalPage;
} public int getTotalCount() {
return totalCount;
} public List<T> getData() {
return Data;
} public void setCurPage(int curPage) {
this.curPage = curPage;
} public void setPageSize(int pageSize) {
this.pageSize = pageSize;
} public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
} public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
} public void setData(List<T> data) {
Data = data;
} }

在dao中 创建分页方法

//获取总条数
public int GetUserCount(String userName, String sex) throws SQLException {
String sql = "select count(*) from User where 1=1 ";
List<String> params = new ArrayList<String>();
if (userName != null && userName != "") {
sql += " and UserName like ?";
params.add("%" + userName + "%");
}
if (sex != null && sex != "") {
sql += " and sex = ?";
params.add(sex);
}
QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
long count = (long)qr.query(sql,new ScalarHandler(),params.toArray());
return (int)count;
} public List<User> GetUserListForPageBean(String userName, String sex, int page, int pageSize) throws SQLException {
String sql = "select * from User where 1=1 ";
List<Object> params = new ArrayList<Object>();
if (userName != null && userName != "") {
sql += " and UserName like ?";
params.add("%" + userName + "%");
}
if (sex != null && sex != "") {
sql += " and sex = ?";
params.add(sex);
}
sql += " limit ?,?";
page = (page - 1) * pageSize;
params.add(page);
params.add(pageSize); QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
List<User> users = qr.query(sql, new BeanListHandler<User>(User.class), params.toArray());
return users;
}

service

public PageBean<User> GetUserListForPageBean(String userName, String sex, int page, int pageSize) throws SQLException {
UserDao dao = new UserDao();
PageBean pageBean = new PageBean();
pageBean.setCurPage(page);
pageBean.setPageSize(pageSize);
int totalCount = dao.GetUserCount(userName, sex);
pageBean.setTotalCount(totalCount);
int totalPage = (int) Math.ceil(1.0 * totalCount / pageSize);
pageBean.setTotalPage(totalPage);
List<User> data = dao.GetUserListForPageBean(userName,sex,page,pageSize);
pageBean.setData(data);
return pageBean;
}

UserListForPage servlet

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String userName = request.getParameter("userName");
String sex = request.getParameter("sex");
String page = request.getParameter("page"); int curPage = 1;
if(page != null && page != ""){
curPage = Integer.parseInt(page);
}
int pageSize = 5; UserService service = new UserService();
PageBean<User> pageBean = null;
try {
pageBean = service.GetUserListForPageBean(userName,sex,curPage,pageSize);
} catch (SQLException e) {
e.printStackTrace();
} request.setAttribute("userName",userName);
request.setAttribute("sex",sex); request.setAttribute("pageBean", pageBean);
request.getRequestDispatcher("userListForPage.jsp").forward(request,response);
}

web.xml

    <servlet>
<servlet-name>UserListForPage</servlet-name>
<servlet-class>com.david.web.UserListForPage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserListForPage</servlet-name>
<url-pattern>/userListForPage</url-pattern>
</servlet-mapping>

userListForPage.jsp

<%@ page import="com.david.domain.User" %>
<%@ page import="java.util.List" %>
<%@ page import="com.david.domain.PageBean" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<div>
按用户名称搜索:<input id="txtUserName" value="${userName}"> &nbsp;
按用户性别查找:<select id="selSex">
<option value="">全部</option>
<option value="男">男</option>
<option value="女">女</option>
</select> &nbsp;
<button type="button" onclick="search()">搜索</button>
<a href="AddUser.jsp">添加用户</a>
</div>
<script>
//设置默认值
window.onload = function (){
for(var i = 0;i<document.getElementById("selSex").options.length;i++){
var option = document.getElementById("selSex").options[i];
if(option.value == "${sex}"){
option.selected = true;
}
}
} function search(){
var userName = document.getElementById("txtUserName").value;
var sex = "";
for(var i = 0;i<document.getElementById("selSex").options.length;i++){
if(document.getElementById("selSex").options[i].selected){
sex = document.getElementById("selSex").options[i].value;
}
}
location.href='userList?userName='+userName+"&sex="+sex;
}
</script>
<table>
<tr>
<th>用户ID</th>
<th>用户名</th>
<th>用户密码</th>
<th>用户年龄</th>
<th>用户性别</th>
<th>操作</th>
</tr>
<%
PageBean pageBean = (PageBean)request.getAttribute("pageBean");
if (pageBean != null && pageBean.getData() != null) {
%>
<%for (User u : (List<User>)pageBean.getData()) {%>
<tr>
<td><%=u.getUserId()%>
</td>
<td><%=u.getUserName()%>
</td>
<td><%=u.getPassWord()%>
</td>
<td><%=u.getAge()%>
</td>
<td><%=u.getSex()%>
</td>
<td>
<a href="GetUserById?userId=<%=u.getUserId()%>">修改</a>
<a href="DeleteUser?userId=<%=u.getUserId()%>">删除</a>
</td>
</tr>
<%}%>
<%}%>
</table>
<div class="page">
<%if(pageBean.getCurPage() != 1){%>
<a href="?page=1">首页</a>
<a href="?page=<%=pageBean.getCurPage()-1%>">上一页</a>
<%}%> <%for(int i = 1;i<=pageBean.getTotalPage();i++){
%>
<%if(pageBean.getCurPage() == i){%>
<a href="?page=<%=i%>" class="currentPage"><%=i%></a>
<%}else{%>
<a href="?page=<%=i%>"><%=i%></a>
<%}%>
<%}%>
<%if(pageBean.getCurPage() != pageBean.getTotalPage()){%>
<a href="?page=<%=pageBean.getCurPage()+1%>">下一页</a>
<a href="?page=<%=pageBean.getTotalPage()%>">尾页</a>
<%}%>
共<%=pageBean.getTotalCount()%>条数据,<%=pageBean.getTotalPage()%>页。
</div>
<style>
.page a{
font-size:12px;
text-decoration: none;
color:#ccc;
}
.page .currentPage{
color:#000;
font-size:20px;
}
</style>
</body>
</html>

jsp 条件查询、列表分页的更多相关文章

  1. SSM整合 mybatis多条件查询与分页

    多条件查询与分页: 通过页面的houseName.floorage获取值传到前端视图(HouseSearchVO)实体类中的houseName,floorage建立houseSearchVO对象. 通 ...

  2. Spring MVC和Spring Data JPA之按条件查询和分页(kkpaper分页组件)

    推荐视频:尚硅谷Spring Data JPA视频教程,一学就会,百度一下就有, 后台代码:在DAO层继承Spring Data JPA的PagingAndSortingRepository接口实现的 ...

  3. TP条件查询和分页查询

    一.条件查询 前端页面 <!doctype html> <html> <head> <meta charset="utf-8"> & ...

  4. WebFrom 小程序【条件查询与分页整合】

    将前面的条件查询功能与分页显示整合到一个页面中 <%@ Page Language="C#" AutoEventWireup="true" CodeFil ...

  5. spring data jpa实现多条件查询(分页和不分页)

    目前的spring data jpa已经帮我们干了CRUD的大部分活了,但如果有些活它干不了(CrudRepository接口中没定义),那么只能由我们自己干了.这里要说的就是在它的框架里,如何实现自 ...

  6. (转)Entity Framework4&period;1实现动态多条件查询、分页和排序

    原文:http://www.cnblogs.com/ahui/archive/2011/08/04/2127282.html EF通用的分页实现: 1 2 3 4 5 6 7 8 9 10 11 12 ...

  7. PHP连接数据库实现多条件查询与分页功能——关于租房页面的完整实例操作

    租房页面如图: 代码如下: <!DOCTYPE html><html>    <head>        <meta charset="UTF-8& ...

  8. 【spring data jpa】带有条件的查询后分页和不带条件查询后分页实现

    一.不带有动态条件的查询 分页的实现 实例代码: controller:返回的是Page<>对象 @Controller @RequestMapping(value = "/eg ...

  9. thinkphp5&period;0多条件模糊查询以及多条件查询带分页如何保留参数

    1,多条件模糊查询 等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id’] = array(‘neq’,100 ...

随机推荐

  1. WPF自定义控件与样式&lpar;7&rpar;-列表控件DataGrid与ListView自定义样式

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: Dat ...

  2. GATT两个角色 服务器与客户端

    两个设备应用数据的通信是通过协议栈的GATT层实现的. 从GATT角度来看,当两个设备建立连接后,他们处于以下两种角色之一: GATT服务器: 它是为GATT客户端提供数据服务的设备 GATT客户端: ...

  3. ASCII字符集

    十进制 八进制 十六进制 二进制 字符 ASCII名称 0 0 0 0000 0000 ^@ NUL 1 1 1 0000 0001 ^A SOH 2 2 2 0000 0010 ^B STX 3 3 ...

  4. bzoj 2599 数分治 点剖分

    具体可以见漆子超的论文 /**************************************************************     Problem:     User: B ...

  5. MySQL内存表-临时表

    HEAP表是访问数据速度最快的MySQL表,他使用保存在内存中的散列索引.但如果MySQL或者服务器重新启动,表中数据将会丢失.用法:如论坛的在线人数统计,这种表的数据应该是无关紧要的,就几个简单的字 ...

  6. jQuery&period;autoComplete 多参数

    query 版本 1.3.2插件默认的 参数 是q 如果需要传递多个参数呢?$("#stylistname").autocomplete("/page/autostyli ...

  7. sublime text2的插件熟悉

    今天加班,开会.于是整理下sublime text的插件. 1.安装了tag插件.负责html的格式化.从百度云下载了文件,放入了插件包的目录下. 2.启用了alignment 快捷键 ctr+alt ...

  8. 深度神经网络(DNN)模型与前向传播算法

    深度神经网络(Deep Neural Networks, 以下简称DNN)是深度学习的基础,而要理解DNN,首先我们要理解DNN模型,下面我们就对DNN的模型与前向传播算法做一个总结. 1. 从感知机 ...

  9. SpringCloud系列——Zuul 动态路由

    前言 Zuul 是在Spring Cloud Netflix平台上提供动态路由,监控,弹性,安全等边缘服务的框架,是Netflix基于jvm的路由器和服务器端负载均衡器,相当于是设备和 Netflix ...

  10. MySQL创建只读账号

    应用场景:只要公司有数据团队的,那免不了让这帮家伙把全公司的数据库数据都摸一遍,但是要是直接把root用户给了他们,未免有点危险,于是只能给这帮人设权限,一般而言,他们只是做读操作,既然做读操作,那么 ...