jsp+struct标签实现分页(只有jsp代码),内用到迭代标签、if标签、bean
<%@ page language="java" import="com.jixy.*,java.util.*" pageEncoding="utf-8"%>
<%@ page contentType="text/html;charset=GBK"%>
<%-- 我们使用 JSTL 来访问数据 --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>用户列表页面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<style>
/* 给链接加入鼠标移过变色和去除下划线功能 */
a:hover {color:red;text-decoration:none}
</style>
</head>
<body><b>用户列表页面</b><br>
<%-- 输出用户列表 --%><br>
<table width="80%" border="1" cellpadding="0" style="border-collapse: collapse; " bordercolor="#000000">
<tr>
<td><b>用户ID</b></td>
<td><b>密码</b></td>
<td><b>职业</b></td>
<td><b>省代号</b></td>
<td><b>市代号</b></td>
<td><b>爱好</b></td>
<td><b>了解途径</b></td>
<td><b>出生日期</b></td>
<td><b>操作</b></td>
</tr>
<tr>
<td><b>fdgd</b></td>
<td><b>fasd</b></td>
<td><b>safda</b></td>
<td><b>sdfa</b></td>
<td><b>sdfa</b></td>
<td><b>asd</b></td>
<td><b>adf</b></td>
<td><b>asf</b></td>
<td><b>asdf</b></td>
</tr>
<s:iterator value="uiList" status="statu" id = "user" >
<tr>
<td><s:property value='uid'/></td>
<td>$(uid)</td>
<td><s:property value="pwd" /></td>
<td><s:property value="post" /></td>
<td><s:property value="provinceId" /></td>
<td><s:property value="cityId" /></td>
<td><s:property value="loves" /></td>
<td><s:property value="channel" /></td>
<td><s:property value="birthday" /></td>
<td><a href="edit.action?id=${uid}">修改</a> <a href="delete.action?id=${uid}">删除</a></td>
</tr>
</s:iterator>
</table> 共<s:property value="totalCount" />个用户
第<s:property value="currentPage" />页/共<s:property value="totalPage" />页
<%-- 输出页面跳转代码, 分链接和静态文字两种 --%>
<s:if test="currentPage > 1">
<a href="${pageContext.request.contextPath}/listUserInfo2.action?page=${ currentPage-1}">上一页</a>
</s:if>
<s:if test="currentPage < totalPage">
<a href="${pageContext.request.contextPath}/listUserInfo2.action?page=${currentPage+1}">下一页</a>
</s:if>
<%-- 输出 JavaScript 跳转代码 --%>
<script>
// 页面跳转函数
// 参数: 包含页码的表单元素,例如输入框,下拉框等
function jumpPage(input) {
// 页码相同就不做跳转
if(input.value == ${currentPage}) {
return;
}
var newUrl = "${pageContext.request.contextPath}/listUserInfo2.action?page=" + input.value;
document.location = newUrl;
}
</script>
转到
<!-- 输出 HTML SELECT 元素, 并选中当前页面编码 -->
<select οnchange='jumpPage(this);'>
<s:bean name="org.apache.struts2.util.Counter" id="counter">
<s:param name="first" value="1" />
<s:param name="last" value="totalPage" />
<s:iterator>
<option value="<s:property/>"
<s:if test="currentPage == currenter -1">selected</s:if>>
<s:property/>
</option>
</s:iterator>
</s:bean>
</select>
输入页码:<input type="text" value="${currentPage}" id="jumpPageBox" size="3">
<input type="button" value="跳转" οnclick="jumpPage(document.getElementById('jumpPageBox'))">
</body>
</html>
2.action
package cn.jixy.struts.actions;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.jixy.hib.UserInfo;
import com.jixy.service.IPageService;
import com.jixy.service.impl.PageService;
import com.opensymphony.xwork2.ActionSupport;
public class useraction2 extends ActionSupport {
public String page;
public List<UserInfo> uiList;
public int totalPage;
public int totalCount;
public int currentPage;
public int pageSize = 2;
public String listUserInfo() {
if (page == null || page.length() == 0) {
page = "1";
}
//int currentPage = 0;
try {
System.out.println("hahha"+page);
currentPage = Integer.parseInt(page);// 当前页码
} catch (Exception e) {
}
if (currentPage == 0) {
currentPage = 1;
System.out.println("哈哈哈"+currentPage);
}
System.out.println(currentPage);
IPageService pageService = new PageService();
uiList = pageService.findPagedAll("UserInfo" ,currentPage, pageSize);
totalPage = pageService.getTotalPage("UserInfo" ,pageSize);
totalCount = pageService.getTotalCount("UserInfo");
System.out.println(uiList.get(0).getUid());
return "succ";
}
}
3.pageservice
package com.jixy.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.jixy.hib.HibernateSessionFactory;
import com.jixy.service.IPageService;
public class PageService implements IPageService {
/**
* 获取总页面数.
*
* @param pageSize
* 一页显示数据量
* @return 页面总数
*/
public int getTotalPage(String tableName, int pageSize) {
int totalCount = getTotalCount(tableName);
// 得到页面总数
int totalPageCount = ((totalCount + pageSize) - 1) / pageSize;
return totalPageCount;
}
/**
* 分页显示数据.
* @param currentPage 当前页码, 从 1 开始
* @param pageSize 每页显示数据量
* @return 分页后的数据列表 - List<Student>
*/
public List findPagedAll(String tableName, int currentPage, int pageSize) {
Session session = null;
Transaction tran = null;
List pageList = new ArrayList();
try {
if (currentPage == 0) {
currentPage = 1;
}
//操作之前,打开 Session
session = HibernateSessionFactory.getSession();
//开启事务
tran = session.beginTransaction();
//执行事务处理
String hql = "from " + tableName ;
Query query = session.createQuery(hql);
query.setFirstResult((currentPage - 1) * pageSize);
query.setMaxResults(pageSize);
pageList = query.list();
//提交事务
tran.commit();
} catch (Exception e) {
//如果出现异常,就撤销事务
if(tran != null)
tran.rollback();
e.printStackTrace();
} finally {
//不管事务执行成功与否,最后都关闭Session
session.close();
}
return pageList;
}
/**
* 得到总记录数
* @return 指定表中的记录总数
*/
public int getTotalCount(String tableName) {
Session session = null;
Transaction tran = null;
List stuList = new ArrayList();
try {
//操作之前,打开 Session
session = HibernateSessionFactory.getSession();
//开启事务
tran = session.beginTransaction();
//执行事务处理
String hql = "from " + tableName ;
Query query = session.createQuery(hql);
stuList = query.list();
//提交事务
tran.commit();
} catch (Exception e) {
//如果出现异常,就撤销事务
if(tran != null)
tran.rollback();
e.printStackTrace();
} finally {
//不管事务执行成功与否,最后都关闭Session
session.close();
}
return stuList.size();
}
}
jsp+struct标签实现分页(只有jsp代码),内用到迭代标签、if标签、bean相关推荐
- 数据库分页和使用jstl标签替换分页的jsp代码
参考链接: http://www.mossle.com/docs/jsp/html/jsp-ch-15.html 转载于:https://www.cnblogs.com/wenjieyatou/p/6 ...
- 【JSP教科书】JSP知识在线指南(记录知识JSP体系、EL表达式、JSTL标签库、JSP开发模型和分页查询)
文章目录 @[toc] 一.JSP简介 1.1 什么是JSP? 1.2 JSP的特点 1.3 JSP为什么也是Servlet 1.4 tomact服务器中的资源分析 1.4.1 tomact服务器中的 ...
- java代码在jsp中怎么写_在jsp中写java代码
该服务器上的所有的访问者的所有 jsp 页面 D.该服务器上的所有的访问者的所有 jsp 页面和 Java 程序 6.在 JSP 中调用 JavaBean 时不会用到的标记是( )...... jav ...
- jsp新闻项目(分页评论的维护浏览量)
目录 一.分页 1.思路分析 2.代码 二.评论的维护 (Oracle)数据库评论表 1.添加评论 2.显示评论 3.删除评论 三.浏览量 一.分页 1.思路分析 当我们的数据库数据过多时,一个页面会 ...
- html通过jsp连接sql数据库数据,jsp连接sql Server数据库教程(示例代码)
jsp连接sqlServer数据库教程: 首先讲下我用的工具版本以供参考: jar包:jtds1.3.1.jar 下载地址:点击进入 数据库:SQL Server2012 服务器:Tomcat8.0 ...
- jsp/html开发中常用的JS代码和页面特效代码
1.jsp/html开发中常用的JS代码 1.后退 前进 <input type="button" value="后退" onClick="hi ...
- 为什么要把html改为jsp,为什么要用ZHTML替换JSP
从2006年至2011年底,泽元软件一直都在以JSP为主要的展示层技术,而在长期的使用过程中,我们发现了JSP的一些问题,主要有: 1)JSP是一个开放的模型,既可以使用标签和自定义标签,也可以使用& ...
- Servlet与JSP学习笔记(五) JSP核心(下)
同样可以参考菜鸟笔记. JSP标签 JSP除了包括以"<%"开头的JSP标记,还包括以"<jsp:"开头的JSP标签.实际上,前者的每种标记都有后者 ...
- jsp超链接到java文件,jsp页面超链接传中文终极解决办法
在做web前端页面的时候,经常碰到传中文问题.网上有许多方案,但仍不能根治,最终要用js或者java的encode相关方法. 常规方案有三部: 1.改tomcat的server.xml中URIEnco ...
- jsp el 表达式_JSP表达式语言– JSP EL示例教程
jsp el 表达式 Today we will look into JSP Expression Language or JSP EL Example tutorial. 今天,我们将研究JSP表达 ...
最新文章
- Java学习笔记32
- Vue和iview-admin搭建的项目进行兼容
- Typecho添加投稿功能插件
- linux下抓包工具 wireshark,网络抓包工具Wireshark的简单使用
- Kubernetes1.91(K8s)安装部署过程(一)--证书安装
- 如何从另一个Shell脚本调用Shell脚本?
- linux设置自动关机命令,Linux中Shutdown命令实现定时自动关机
- md5校验工具hash
- 利用UDP端口转发绕过校园网认证
- n1怎么进入线刷模式_诺讯N1线刷救砖教程 刷机包下载
- html设置div大小位置不变,div大小 div固定大小设置
- js文档加载事件---
- word文件怎么压缩?
- 企业数字化/数智化转型(一):数智力创新2.0
- 管理团队需要的能力和技术
- (新型事件相机有关的论文解读)A Unifying Contrast Maximization Framework for Event Cameras
- Python3.7.4入门-0/1To Begin/数据类型与结构
- excel显著性检验_#如何用excel做anova分析#用excel做显著性分析
- 程序员面试揭秘之程序员靠什么途径去美国工作?
- 压力测试/性能测试工具LoadRunner录制脚本详细步骤(一)