structs分页组件
来源:互联网 发布:北京网络营销软件价格 编辑:程序博客网 时间:2024/06/05 06:04
jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
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">
<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">
-->
<link href="${pageContext.request.contextPath}/image/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
//setMenuHeight
$('.menu').height($(window).height()-51-27-26);
$('.sidebar').height($(window).height()-51-27-26);
$('.page').height($(window).height()-51-27-26);
$('.page iframe').width($(window).width()-15-168);
//menu on and off
$('.btn').click(function(){
$('.menu').toggle();
if($(".menu").is(":hidden")){
$('.page iframe').width($(window).width()-15+5);
}else{
$('.page iframe').width($(window).width()-15-168);
}
});
//
$('.subMenu a[href="#"]').click(function(){
$(this).next('ul').toggle();
return false;
});
})
</script>
</head>
<body>
<div id="wrap">
<div id="header">
<div class="logo fleft"></div>
<a class="logout fright" href="login.html"> </a>
<div class="clear"></div>
<div class="subnav">
<div class="subnavLeft fleft"></div>
<div class="fleft"></div>
<div class="subnavRight fright"></div>
</div>
</div><!--#header -->
<div id="content">
<div class="space"></div>
<div class="menu fleft">
<ul>
<li class="subMenuTitle">功能菜单</li>
<li class="subMenu"><a href="#">请假管理</a>
<ul>
<li><a href="${pageContext.request.contextPath}/pages/TeacherAction!getAllLeave.do">所有假单</a></li>
<li><a href="${pageContext.request.contextPath}/pages/TeacherAction!getAllnoragreeLeave.do">待审批假单</a></li>
<li><a href="${pageContext.request.contextPath}/pages/TeacherAction!getAllAgreeLeave.do">已同意假单</a></li>
<li><a href="${pageContext.request.contextPath}/pages/TeacherAction!getAllDisagreeLeave.do">不同意假单</a></li>
</ul>
</li>
<li class="subMenu"><a href="#" target="right">个人信息管理</a></li>
</ul>
</div>
<div class="sidebar fleft"><div class="btn"></div></div>
<div class="page">
<h6 align="center">所有假单列表</h6>
<table width="80%" border="1" cellpadding="0" style="border-collapse:collapse;" bordercolor="#000000">
<tr>
<th align="center">序号</th>
<th align="center">学生名字</th>
<th align="center">学生编号</th>
<th align="center">班级</th>
<th align="center">请假原因</th>
<th align="center">请假开始时间</th>
<th align="center">请假结束时间</th>
<th align="center">状态</th>
</tr>
<s:iterator value="leavelist" status="list" >
<tr>
<s:hidden name="id" value="leaveId"></s:hidden>
<td align="center" ><s:property value="#list.getIndex()+1"/></td>
<td align="center" ><s:property value="stuName" /></td>
<td align="center"><s:property value="stuId" /></td>
<td align="center"><s:property value="class_" /></td>
<td align="center"><s:property value="leaveReason" /></td>
<td align="center"><s:property value="leaveDate" /></td>
<td align="center"><s:property value="leaveTime" /></td>
<td align="center"><s:property value="agreeOrnot" /> </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}/pages/TeacherAction!getAllLeave.do?page=${ currentPage-1}">上一页</a>
</s:if>
<s:if test="currentPage < totalPage">
<a href="${pageContext.request.contextPath}/pages/TeacherAction!getAllLeave.do?page=${currentPage+1}">下一页</a>
</s:if>
<%-- 输出 JavaScript 跳转代码 --%>
<script>
// 页面跳转函数
// 参数: 包含页码的表单元素,例如输入框,下拉框等
function jumpPage(input) {
// 页码相同就不做跳转
//if(input.value == ${currentPage}) {
// return;
// }
var newUrl = "${pageContext.request.contextPath}/pages/TeacherAction!getAllLeave.do?page=" + input.value;
document.location = newUrl;
}
</script>
转到
<!-- 输出 HTML SELECT 元素, 并选中当前页面编码 -->
<select onchange='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="跳转" onclick="jumpPage(document.getElementById('jumpPageBox'))"/>
</div>
</div><!--#content -->
<div class="clear"></div>
<div id="footer"></div><!--#footer -->
</body>
</html>
action:
package com.eduAskFoLeaveSystem.business.action;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.eduAskFoLeaveSystem.business.model.Leave;
import com.eduAskFoLeaveSystem.business.model.Manager;
import com.eduAskFoLeaveSystem.business.model.Teacher;
import com.eduAskFoLeaveSystem.business.service.*;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
@Component
public class TeacherAction extends ActionSupport {
@Autowired
private TeacherManager teacherManager;
/***/
@Autowired
private PageService pageService ;
@Autowired
private StudentManager studentManager;
@Autowired
private LeaveManager leaveManager;
public Leave leave;//假单对象
public List<Manager> teacherlist ;
private Integer leaveId;
//分页组件用到的变量定义开始
public String page;
public List<Leave> leavelist ; //假单列表
public int totalPage;
public int totalCount;
public int currentPage;
public int pageSize = 2;
//分页主键用到的变量定义结束
public Leave getLeave() {
return leave;
}
public void setLeave(Leave leave) {
this.leave = leave;
}
public List<Manager> getTeacherlist() {
return teacherlist;
}
public void setTeacherlist(List<Manager> teacherlist) {
this.teacherlist = teacherlist;
}
public Integer getLeaveId() {
return leaveId;
}
public void setLeaveId(Integer leaveId) {
this.leaveId = leaveId;
}
/**
* 使用action的一般配置方法,动态制定执行方法。
* @return
*/
public String addteacher(Teacher teacher){
if(teacherManager.save(teacher))
return "addteacher";
else
return "caozuoshibai";
}
/**
* 删除教师
*/
public String deleteteacher(Teacher teacher){
if(teacherManager.deleteteacher(teacher))
return "deleteteacher";
else
return "caozuoshibai";
}
/**
* 修改教师信息
* @param teacher
* @return
*/
public String updateteacher(Teacher teacher){
if(teacherManager.saveorupdateteacher(teacher))
return "updateteacher";
else
return "caozuoshibai";
}
/**
* 查找所有教师
* @return
*/
public String serchAllteacher(){
List list = teacherManager.findall();
return "showall";
}
/**
* 审批通过假单
* @return
*/
public String agreeLeave(){
leave = leaveManager.findbyleaveId(leaveId);
if(leaveManager.agreeLeave(leave))
return "agreesuccess";
return "agreefail";
}
/**
* 审批不同意假单
* @return
*/
public String disagreeLeave(){
String result = "disagreefail";
leave = leaveManager.findbyleaveId(leaveId);
if(leaveManager.disagreeLeave(leave))
result = "agreesuccess";
return result;
}
/**
* 获取所有同意的假单
*/
public String getAllAgreeLeave(){
String st = "from Leave l where l.agreeOrnot= '同意' ";
System.out.println(st);
doPageService(st);
return "AllAgreeLeave";
}
/**
* 获取所有不批准的假单
*/
public String getAllDisagreeLeave(){
String st = "from Leave l where l.agreeOrnot= '不同意' ";
doPageService(st);
return "AllDisagreeLeave";
}
/**
* 获取所有待审批的假单
*/
public String getAllnoragreeLeave(){
String st = "from Leave l where l.agreeOrnot= '' ";//hql写法
doPageService(st);
return "AllnotagreeLeave";
}
/**
* 获取所有假单
* @return
*/
public String getAllLeave(){
String st = "from Leave";
doPageService(st);
return "AllLeave";
}
/**
* 执行分页,传入的是查询的HQL语句,照抄
*/
public void doPageService(String HQL){
if (page == null || page.length() == 0) {
page = "1";
}
//int currentPage = 0;
currentPage = Integer.parseInt(page);// 当前页码
if (currentPage == 0) {
currentPage = 1;
}
leavelist = pageService.findPagedAll(HQL ,currentPage, pageSize);
totalPage = pageService.getTotalPage(HQL ,pageSize);
totalCount = pageService.getTotalCount(HQL);
}
}
分页服务类:
package com.eduAskFoLeaveSystem.business.service;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.eduAskFoLeaveSystem.business.dao.LeaveDAO;
import com.eduAskFoLeaveSystem.business.util.BaseHibernateDAO;
@Component
public class PageService extends BaseHibernateDAO {
private static final Logger log = LoggerFactory.getLogger(LeaveDAO.class);
/**
* 获取总页面数.
*
* @param pageSize
* 一页显示数据量
* @return 页面总数
*/
public int getTotalPage(String HQL, int pageSize) {
int totalCount = getTotalCount(HQL);
// 得到页面总数
int totalPageCount = ((totalCount + pageSize) - 1) / pageSize;
return totalPageCount;
}
/**
* 分页显示数据.
* @param currentPage 当前页码, 从 1 开始
* @param pageSize 每页显示数据量
* @return 分页后的数据列表 - List<Student>
*/
public List findPagedAll(String HQL, int currentPage, int pageSize) {
System.out.println(currentPage+"分页到了findpage");
Session session = null;
Transaction tran = null;
List pageList = new ArrayList();
try {
if (currentPage == 0) {
currentPage = 1;
}
//操作之前,打开 Session
session = getSession();
//开启事务
tran = session.beginTransaction();
//执行事务处理
String hql = HQL ;
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 HQL) {
Session session = null;
Transaction tran = null;
List stuList = new ArrayList();
try {
//操作之前,打开 Session
session = getSession();
//开启事务
tran = session.beginTransaction();
//执行事务处理
String hql = HQL ;
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();
}
}
- structs分页组件
- 运用structs+Hibernate建立网页分页效果
- structs
- structs
- structs
- Structs
- Structs
- Structs
- structs
- structs
- Structs
- 分页组件
- 分页组件
- 分页组件
- 分页组件
- 一个分页组件
- 一个JSP分页组件
- Jsp分页组件制作
- jmockit mock 方法内创建对象的方法调用
- webAPI 支持网页测试 必须是谷歌浏览器
- 对数据分布进行可视化的方法
- ASP之数据库连接
- webAPI 网页测试工具
- structs分页组件
- CCPlatformConfig(设置运行平台 iOS android win32等。。。)
- libstreaming源码分析二之MediaRecorder编码
- 2014苹果全球开发者大会:新系统成主角 无硬件发布
- 15周项目三
- 如何花更少的时间学习更多的知识
- 《暗时间》读书笔记与读后感
- Ubuntu 解压命令详解
- Pig、Hive、MapReduce 解决分组 Top K 问题