100分求STRUTS实现分页源码或控件 http://www.yourblog.org/Data/20043/27958.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一气之下我自己写了一个分页,还很通用呢,IT'S FREE,喜欢以后大家有技术或做过的都互相公开代码,中国缺的不是技术而是技术流通,这样不好,要超过老美,必须做到技术在最大领域内流通!!STRUTS+HIBERNATE+ORACLE 分页实现如下:struts-config.xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><struts-config> <data-sources /> <form-bean name="MessageForm" type="com.ecc.struts.message.formbean.MessageForm" /> </form-beans> <global-exceptions /> <global-forwards /> <action-mappings > <action attribute="MessageForm" input="/jsp/message.jsp" name="MessageForm" path="/message" scope="request" type="com.ecc.struts.message.action.MessageAction" > <forward name="success" path="/jsp/message.jsp"/> <forward name="noitemfound" path="jsp/noitemfound_in_search.jsp"/> </action> </action-mappings> <controller bufferSize="4096" debug="0" /> <message-resources parameter="com.ecc.struts.ApplicationResources" /></struts-config>MessageForm.java://Created by MyEclipse Struts// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_3.8.2/xslt/JavaClass.xslpackage 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.xslpackage 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> 求Struts1.3登录实例 struts2 标签问题!急急急...... SOS WEB程序和服务器一起打包 天理不容啊,有技术却找不到工作 一段JAVA代码,请兄弟们看看,帮解释一下,谢谢 tomcat5.0报错:java.lang.OutOfMemeryEror。该怎么设置让tomcat的内存大一些?? 怎样连接到sybase数据库,或者配制jdbc for sybase ■■高薪诚聘J2EE程序员(4000-7000元)公司在上海!! Ajax向控制层提交请求后一定要返回结果吗? 小弟初学,有个基本的客户端访问问题,请帮忙 高手请指点指点新手啊
struts-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources />
<form-bean name="MessageForm" type="com.ecc.struts.message.formbean.MessageForm" />
</form-beans> <global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="MessageForm"
input="/jsp/message.jsp"
name="MessageForm"
path="/message"
scope="request"
type="com.ecc.struts.message.action.MessageAction" >
<forward name="success" path="/jsp/message.jsp"/>
<forward name="noitemfound" path="jsp/noitemfound_in_search.jsp"/>
</action>
</action-mappings> <controller bufferSize="4096" debug="0" />
<message-resources parameter="com.ecc.struts.ApplicationResources" />
</struts-config>
MessageForm.java://Created by MyEclipse Struts
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_3.8.2/xslt/JavaClass.xslpackage 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;
}}
//Created by MyEclipse Struts
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_3.8.2/xslt/JavaClass.xslpackage 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>