jsp 条件查询、列表分页
条件查询
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}">
按用户性别查找:<select id="selSex">
<option value="">全部</option>
<option value="男">男</option>
<option value="女">女</option>
</select>
<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}">
按用户性别查找:<select id="selSex">
<option value="">全部</option>
<option value="男">男</option>
<option value="女">女</option>
</select>
<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 条件查询、列表分页的更多相关文章
- SSM整合 mybatis多条件查询与分页
多条件查询与分页: 通过页面的houseName.floorage获取值传到前端视图(HouseSearchVO)实体类中的houseName,floorage建立houseSearchVO对象. 通 ...
- Spring MVC和Spring Data JPA之按条件查询和分页(kkpaper分页组件)
推荐视频:尚硅谷Spring Data JPA视频教程,一学就会,百度一下就有, 后台代码:在DAO层继承Spring Data JPA的PagingAndSortingRepository接口实现的 ...
- TP条件查询和分页查询
一.条件查询 前端页面 <!doctype html> <html> <head> <meta charset="utf-8"> & ...
- WebFrom 小程序【条件查询与分页整合】
将前面的条件查询功能与分页显示整合到一个页面中 <%@ Page Language="C#" AutoEventWireup="true" CodeFil ...
- spring data jpa实现多条件查询(分页和不分页)
目前的spring data jpa已经帮我们干了CRUD的大部分活了,但如果有些活它干不了(CrudRepository接口中没定义),那么只能由我们自己干了.这里要说的就是在它的框架里,如何实现自 ...
- (转)Entity Framework4.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 ...
- PHP连接数据库实现多条件查询与分页功能——关于租房页面的完整实例操作
租房页面如图: 代码如下: <!DOCTYPE html><html> <head> <meta charset="UTF-8& ...
- 【spring data jpa】带有条件的查询后分页和不带条件查询后分页实现
一.不带有动态条件的查询 分页的实现 实例代码: controller:返回的是Page<>对象 @Controller @RequestMapping(value = "/eg ...
- thinkphp5.0多条件模糊查询以及多条件查询带分页如何保留参数
1,多条件模糊查询 等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id’] = array(‘neq’,100 ...
随机推荐
- mysql进阶(十二)常见错误汇总
原因:外键名不能重复
- 《java入门第一季》之面向对象(继承总结)
继承已经全部写完了,接下来通过几个案例对继承问题做一个总结: /* 看程序写结果: A:成员变量 就近原则 B:this和super的问题 this访问本类的成员 super访问父类的成员 C:子类构 ...
- SpriteBuilder中使用TrueType字体的一些障碍
在实践中,有一些小的陷阱和障碍可能阻止你使用一般的TrueType字体. 第一个,必须要有一个有效的字体文件.在Finder中双击该.ttf文件,应该会打开Font Book app,显示一个象形符号 ...
- ThreadLocal深入理解 修订版
本文是传智博客多线程视频的学习笔记. 原版本见 http://blog.csdn.net/dlf123321/article/details/42531979 ThreadLocal是一个和线程安全相 ...
- 安卓笔记--Style的继承
比如想要重写一个对话框的style <style name="Theme_dialog" parent="@android:style/Theme.Dialog&q ...
- Linux常用命令(第二版) --文件管理命令
文件管理命令 并不建议:照着像命令大全这类的书来学! 常用命令大约有200个. 文件命名规则: a)除了'/'之外所有字符都合法! b)这些字符最好不用 1.空格符,制表符,退格符 2.连接符 3.特 ...
- 【58】Spring总结之注解(2)
启用注解配置: 1.context:annotation-config 该配置表示启用注解. 2.context:component-scan base-package="." 该 ...
- PS 滤镜算法原理——高反差保留 (High Pass)
这个特效简单来说,就是一个高通滤波器, 对图像做高斯滤波,用原图减去高斯滤波后的图,再将差值加上128. clc; clear all; close all; Image=imread('4.jpg' ...
- EBS R12安装升级(FRESH)(三)
5 EBS R12.1.1安装后配置 5.1 新建patch文件夹 1 2 3 su - root mkdir /stage/patch chmod 777 /stage/patch 打补丁说明:随便 ...
- Twemproxy分析
twemproxy(又称为nutcracker)是一个轻量级的Redis和Memcached代理,主要用来减少对后端缓存服务器的连接数. 由Twitter开源出来的缓存服务器集群管理工具,主要用来弥补 ...