STRUTS+HIBERNATE+ORACLE分页

时间:2006-10-11 来源: 作者: 点击:
主要由: message.jsp MessageForm MessageAction Player.hbm.xml struts-config.xml MeisaiBean.java 来实现: 先看数据库结构: CREATE TABLE player ( PLAYER_ID VARCHAR(32) PRIMARY KEY, TEAM VARCHAR(3), displayName VARCHAR(100), LAST_NAME VARCHAR(100), MIDDLE
  

主要由:
message.jsp
MessageForm
MessageAction
Player.hbm.xml
struts-config.xml
MeisaiBean.java
来实现:
先看数据库结构:
CREATE TABLE player
(
  PLAYER_ID   VARCHAR(32) PRIMARY KEY,
  TEAM        VARCHAR(3),
  displayName  VARCHAR(100),
  LAST_NAME   VARCHAR(100),
  MIDDLE_NAME VARCHAR(100),
  STATUS      VARCHAR(32),
  POS         VARCHAR(1),
  PPG         INTEGER default 25
);

INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''2113999'''',''''DAL'''',''''Dirk'''',null,'''''''',null,''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30361'''',''''IND'''',''''Ron'''',''''Artest'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30273'''',''''ORL'''',''''Tracy'''',''''McGrady'''','''''''',''''A'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30190'''',''''LAL'''',''''Kobe'''',''''Bryant'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30328'''',''''SEA'''',''''Rashard'''',''''Lewis'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30197'''',''''NJN'''',''''Kerry'''',''''Kittles'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30341'''',''''HOU'''',''''Steve'''',''''Francis'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30146'''',''''MIN'''',''''Kevin'''',''''Garnett'''','''''''',''''A'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''2113993'''',''''BOS'''',''''Paul'''',''''Pierce'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30050'''',''''NJN'''',''''Jason'''',''''Kidd'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30215'''',''''ATL'''',''''Shareef'''',''''Abdur-Rahim'''','''''''',''''I'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''1861922'''',''''ORL'''',''''Mike'''',''''Miller'''','''''''',''''I'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30144'''',''''ATL'''',''''Glenn'''',''''Robinson'''','''''''',''''A'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''2019703'''',''''GSW'''',''''Gilbert'''',''''Arenas'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''2028505'''',''''UTH'''',''''Andrei'''',''''Kirilenko'''','''''''',''''I'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30382'''',''''PHO'''',''''Shawn'''',''''Marion'''','''''''',''''A'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''29941'''',''''SEA'''',''''Brent'''',''''Barry'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''2114000'''',''''DAL'''',''''Michael'''',''''Finley'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30187'''',''''BOS'''',''''Antoine'''',''''Walker'''','''''''',''''A'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30234'''',''''SAC'''',''''Bobby'''',''''Jackson'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''29968'''',''''WAS'''',''''Jerry'''',''''Stackhouse'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''29944'''',''''SAC'''',''''Doug'''',''''Christie'''','''''''',''''I'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30095'''',''''CHI'''',''''Donyell'''',''''Marshall'''','''''''',''''A'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''2028865'''',''''ATL'''',''''Ira'''',''''Newble'''','''''''',''''A'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30029'''',''''SEA'''',''''Gary'''',''''Payton'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30141'''',''''TOR'''',''''Voshon'''',''''Lenard'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30020'''',''''MIL'''',''''Toni'''',''''Kukoc'''','''''''',''''A'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30154'''',''''NOR'''',''''P.J.'''',''''Brown'''','''''''',''''A'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30125'''',''''MIA'''',''''Eddie'''',''''Jones'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30359'''',''''ATL'''',''''Jason'''',''''Terry'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30291'''',''''UTH'''',''''Matt'''',''''Harpring'''','''''''',''''A'''',''''F'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''30228'''',''''MIL'''',''''Ray'''',''''Allen'''','''''''',''''A'''',''''G'''');
INSERT INTO player (PLAYER_ID,TEAM,displayName,LAST_NAME,MIDDLE_NAME,STATUS,POS) VALUES (''''2028503'''',''''SEA'''',''''Vladimir'''',''''Radmanovic'''','''''''',''''A'''',''''F'''');
对应的player.hbm.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>


<!-- test player-->
<class name="com.ecc.hibernate.hbm.Player" table="PLAYER">
<id name="PlayerId" column="player_id" type="string" length="32">
<generator name="Team" column="team" type="string" length="3"/>
<property name="DisplayName" column="displayname" type="string" length="100"/>
<property name="LastName" column="last_name" type="string" length="100"/>
<property name="MiddleName" column="middle_name" type="string" length="100"/>
<property name="Status" column="status" type="string" length="32"/>
<property name="Pos" column="pos" type="string" length="1"/>
<property name="Ppg" column="ppg" type="long" length="22"/>
</class>
</hibernate-mapping>
现在看MeisaiBean.java
package com.ecc.util;

import java.io.Serializable;

 

public class MeisaiBean implements Serializable{

  public MeisaiBean() {
  }

  public String label_1 = "";
  public void setLabel_1(String str) {
    this.label_1 = str;
  }

  public String getLabel_1() {
    return this.label_1;
  }

  public String label_2 = "";
  public void setLabel_2(String str) {
    this.label_2 = str;
  }

  public String getLabel_2() {
    return this.label_2;
  }

  public String label_3 = "";
  public void setLabel_3(String str) {
    this.label_3 = str;
  }

  public String getLabel_3() {
    return this.label_3;
  }

  public String label_4 = "";
  public void setLabel_4(String str) {
    this.label_4 = str;
  }

  public String getLabel_4() {
    return this.label_4;
  }

  public String label_5 = "";
  public void setLabel_5(String str) {
    this.label_5 = str;
  }

  public String getLabel_5() {
    return this.label_5;
  }

  public String label_6 = "";
  public void setLabel_6(String str) {
    this.label_6 = str;
  }

  public String getLabel_6() {
    return this.label_6;
  }

  public String label_7 = "";
  public void setLabel_7(String str) {
    this.label_7 = str;
  }

  public String getLabel_7() {
    return this.label_7;
  }

  public String label_8 = "";
  public void setLabel_8(String str) {
    this.label_8 = str;
  }

  public String getLabel_8() {
    return this.label_8;
  }

  public String label_9 = "";
  public void setLabel_9(String str) {
    this.label_9 = str;
  }

  public String getLabel_9() {
    return this.label_9;
  }

  public String label_10 = "";
  public void setLabel_10(String str) {
    this.label_10 = str;
  }

  public String getLabel_10() {
    return this.label_10;
  }

  public String label_11 = "";
  public void setLabel_11(String str) {
    this.label_11 = str;
  }

  public String getLabel_11() {
    return this.label_11;
  }

  public String label_12 = "";
  public void setLabel_12(String str) {
    this.label_12 = str;
  }

  public String getLabel_12() {
    return this.label_12;
  }

  public String label_13 = "";
  public void setLabel_13(String str) {
    this.label_13 = str;
  }

  public String getLabel_13() {
    return this.label_13;
  }

  public String label_14 = "";
  public void setLabel_14(String str) {
    this.label_14 = str;
  }

  public String getLabel_14() {
    return this.label_14;
  }

  public String label_15 = "";
  public void setLabel_15(String str) {
    this.label_15 = str;
  }

  public String getLabel_15() {
    return this.label_15;
  }

  public String label_16 = "";
  public void setLabel_16(String str) {
    this.label_16 = str;
  }

  public String getLabel_16() {
    return this.label_16;
  }

  public String label_17 = "";
  public void setLabel_17(String str) {
    this.label_17 = str;
  }

  public String getLabel_17() {
    return this.label_17;
  }

  public String label_18 = "";
  public void setLabel_18(String str) {
    this.label_18 = str;
  }

  public String getLabel_18() {
    return this.label_18;
  }

  public String label_19 = "";
  public void setLabel_19(String str) {
    this.label_19 = str;
  }

  public String getLabel_19() {
    return this.label_19;
  }

  public String label_20 = "";
  public void setLabel_20(String str) {
    this.label_20 = str;
  }

  public String getLabel_20() {
    return this.label_20;
  }

  public String label_21 = "";
  public void setLabel_21(String str) {
    this.label_21 = str;
  }

  public String getLabel_21() {
    return this.label_21;
  }
}
MessageForm.java:

//Created by MyEclipse Struts
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_3.8.2/xslt/JavaClass.xsl

package com.ecc.struts.message.formbean;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import java.util.*;
/**
 * MyEclipse Struts
 * Creation date: 01-06-2005
 *
 * XDoclet definition:
 * @struts:form name="testRegistForm"
 */
public class MessageForm extends ActionForm {
    public MessageForm(){}
 private String label1="";

 /**
  * @return
  */
 public String getLabel1() {
  return label1;
 }

 /**
  * @param string
  */
 public void setLabel1(String string) {
  label1 = string;
 }
 private Vector meisai = new Vector();
 public void setMeisai(Vector meisai) {this.meisai = meisai; }
 public Vector getMeisai(){return meisai; }
 
 private int currentPage=0;
 
 /**
  * @return
  */
 public int getCurrentPage() {
  return currentPage;
 }

 /**
  * @param i
  */
 public void setCurrentPage(int i) {
  currentPage = i;
 }
 private int totalPage=0;
 
 /**
  * @return
  */
 public int getTotalPage() {
  return totalPage;
 }

 /**
  * @param i
  */
 public void setTotalPage(int i) {
  totalPage = i;
 }

}
MessageAction.java:
//Created by MyEclipse Struts
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_3.8.2/xslt/JavaClass.xsl

package com.ecc.struts.message.action;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.SessionActionMapping;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import com.ecc.struts.message.formbean.*;
import com.ecc.util.*;
import java.security.*;
import com.ecc.util.security.password.*;
import com.ecc.exception.regist.*;
import com.ecc.hibernate.db.*;
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
import com.ecc.hibernate.*;
import com.ecc.hibernate.hbm.*;
import java.util.*;
public class MessageAction extends Action{

// --------------------------------------------------------- Instance Variables

// --------------------------------------------------------- Methods

/**
 * Method execute
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return ActionForward
 */
private void setPage(ActionForm form,int currentPage){
Transaction tx=null;
Session session=null;
int totalCount=0;
String playerid="";
String team="";
String displayname="";
int firstIndex=0;
int itemsInPerPage=10;
try{
MessageForm messageForm = (MessageForm) form;
session = HbUnit.getSession();
tx= session.beginTransaction();
currentPage=messageForm.getCurrentPage();
if (currentPage<=0){
messageForm.setCurrentPage(1);
firstIndex=0;
}else
{
firstIndex=currentPage*itemsInPerPage-itemsInPerPage;
}
String sql="select player from Player as player";
Query query = session.createQuery
(sql);
query.setFirstResult(firstIndex);
query.setMaxResults(itemsInPerPage);
Iterator it=query.iterate();
Vector meisaiList=new Vector();
while(it.hasNext()){
Player player=(Player)it.next();
playerid=StrHandle.replaNull(player.getPlayerId());
team=StrHandle.replaNull(player.getTeam());
displayname=StrHandle.replaNull(player.getDisplayName());
MeisaiBean meisai=new MeisaiBean();

meisai.setLabel_1(playerid);
meisai.setLabel_2(team);
meisai.setLabel_3(displayname);
meisaiList.add(meisai);
}
messageForm.setMeisai(meisaiList);
tx.commit();
}
catch(Exception ex){
try{
tx.rollback();
}catch(Exception eex){
}
System.out.println(ex);
ex.printStackTrace();
}finally{
try{
HbUnit.closeSession();
}catch(Exception ex){
}
}
}
private int getRecordSize(){
Transaction tx=null;
Session session=null;
int totalCount=0;
try{
session = HbUnit.getSession();
tx= session.beginTransaction();
totalCount=( (Integer) session.iterate("select count(*) from Player").next() ).intValue();
tx.commit();
return totalCount;
}
catch(Exception ex){
try{
tx.rollback();
}catch(Exception eex){
}
System.out.println(ex);
ex.printStackTrace();
return -1;
}finally{
try{
HbUnit.closeSession();
}catch(Exception ex){
}
}
}
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
MessageForm messageForm = (MessageForm) form;

String target="";
int size=0;
int perItemsPage=10;
int modItems=0;
int totalPages=0;
int currentPage=0;
try{
currentPage=messageForm.getCurrentPage();
size=getRecordSize();
if(size<=0){
target="noitemfound";
}
else
{
totalPages=size/perItemsPage;
modItems=size%perItemsPage;
if(modItems>0)totalPages+=1;
System.out.println("Record Size:"+size);
System.out.println("Total page:"+totalPages);
messageForm.setTotalPage(totalPages);
setPage(form,currentPage);
System.out.println("total page:"+totalPages);
target="success";
}
}catch(Exception ex){
System.out.println(ex);
ex.printStackTrace();
}
return (mapping.findForward(target));
}
}
Message.jsp如下:
 
<%@ page language="java"%>
<%@ page contentType="text/html; charset=GB2312" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
 
<html>
<head>
<title>JSP for testRegistForm form</title>
<STYLE type=text/css>
FONT-SIZE: 9pt{
}
A {
COLOR: #000000; TEXT-DECORATION: none
}
A:hover {
TEXT-DECORATION: underline
}
.bt {
BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 9pt; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 50px; CURSOR: hand; HEIGHT: 16px; BACKGROUND-COLOR: #808080; BORDER-RIGHT-WIDTH: 0px
}
.tx1 {
BORDER-RIGHT: black 1px ridge; BORDER-TOP: black 1px ridge; FONT-SIZE: 9pt; BORDER-LEFT: black 1px ridge; WIDTH: 60pt; COLOR: #000000; BORDER-BOTTOM: #000000 1px ridge; HEIGHT: 20px
}
</STYLE>
</head>
<Script Language="JavaScript">
function gotoNext(){
var currentPage=parseInt(MessageForm.currentPage.value);
var totalPage=parseInt(MessageForm.totalPage.value);
currentPage=currentPage+1;
if(currentPage>totalPage){
currentPage=totalPage;
}
var url="message.do?currentPage="+currentPage;
alert(url);
document.location=url;
}
function gotoPrev(){
var currentPage=parseInt(MessageForm.currentPage.value);
var totalPage=parseInt(MessageForm.totalPage.value);
if(currentPage<=0){
  currentPage=0;
}else{
currentPage=currentPage-1;
}
var url="message.do?currentPage="+currentPage;
alert(url);
document.location=url;
}
function gotoTop(){

var url="message.do?currentPage=1";
alert(url);
document.location=url;
}
function gotoLast(){
var totalPage=parseInt(MessageForm.totalPage.value);
var url="message.do?currentPage="+totalPage;
alert(url);
document.location=url;
}
</Script>
<body>
<html:form name="MessageForm" action="/message.do" type="com.ecc.struts.message.formbean.MessageForm" scope="request">
<html:text property="currentPage"/></br>
<html:text property="totalPage"/></br>
</html:form>
<table>
<tr>
  <td><input value="top" type="button" onclick="gotoTop();">
<td><input value="prev" type="button" onclick="gotoPrev();">
<td><input value="next" type="button" onclick="gotoNext();">
<td><input value="last" type="button" onclick="gotoLast();">
</tr>
</table>
<table border=''''1''''>
<logic:present name="MessageForm" scope="request">
  <logic:iterate id="meisaiList" name="MessageForm" property="meisai" scope="request">
    <tr>
  <td>
   <bean:write name="meisaiList" property="label_1" />
  </td>
  <td>
  <bean:write name="meisaiList" property="label_2" />
  </td>
  <td>
  <bean:write name="meisaiList" property="label_3" />
  </td>
    </tr>
    </logic:iterate>
    </logic:present>
</table>
</body>
</html>


------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容