主要由: 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 class="uuid.string"/> </id> <property 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>

|