高分求MVC模式SQL分页完整示例!要求:
不想要存储过程的,不需要jsp页面用rs实现的,要MVC模式的,struts的可以
或者用jpager,displaytag实现的完整示例也可以!要完整的MVC模式示例!我想要的是用select top……,或者oracle rownum sql语句实现的MVC分页完整代码
M 是设置页面数据,C 控制分页的方法,V 只显示分页无操作代码,不符合要求的不给分!能够实现的我可以加分!
也可以发到
不想要存储过程的,不需要jsp页面用rs实现的,要MVC模式的,struts的可以
或者用jpager,displaytag实现的完整示例也可以!要完整的MVC模式示例!我想要的是用select top……,或者oracle rownum sql语句实现的MVC分页完整代码
M 是设置页面数据,C 控制分页的方法,V 只显示分页无操作代码,不符合要求的不给分!能够实现的我可以加分!
也可以发到
明白!
我用struts框架做的一个网站,很简单的,也是三层,实现了分页的功能!
你所说的M 是设置页面数据,C 控制分页的方法,V 只显示分页无操作代码
大概是说不能把分页的实现代码放在JSP页面吧!
Select top 100 from tbname where Id not in (Select top 100 Id form tbname );
这样一个SQL行吗?
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %><%@ taglib uri="/WEB-INF/newxy-html.tld" prefix="nhtml"%>
<%@ taglib uri="/WEB-INF/newxy-logic.tld" prefix="nlogic"%>
<%@ taglib uri="/WEB-INF/newxy-bean.tld" prefix="nbean"%><nhtml:javascripts/>
<nhtml:stylesheets/><nbean:formBean name="industry" sql="select * from industry"/>
<logic:present name="industry">
<logic:notEmpty name="industry" property="_coll">
<div align="center" style="font-size:14px"><b>== 行 业 ==</b></div>
<div><nlogic:navigate formName="industry" length="20"/></div>
<table>
<nlogic:iterate id="rec" name="industry" property="_coll">
<nhtml:TR >
<td style="font-size:14px;color:#000088;cursor:hand">
<bean:write name="rec" property="code"/>
<bean:write name="rec" property="industry"/>
</td>
</nhtml:TR>
</nlogic:iterate>
</table>
</logic:notEmpty>
</logic:present>每页显示20条行业代码及行业信息,默认为25条。java bean 中有一属性为_coll,此属性为Collection类型,保存了查询结果。
newxy(新座标)技术网站 http://www.newxy.net
public int getPageSize()
{
return PageSize;
}
//返回总页数
public int getPageCount(int RecordCount)
{
return (RecordCount%PageSize==0)?(RecordCount/PageSize):(RecordCount/PageSize+1);
}
//页面数整数化方法
public int parseInt(String s)
{
if (s == null)
{
return 1;
}
try
{
return Integer.parseInt(s);
}
catch (NumberFormatException nfe)
{
return 1;
}
}
//返回的sql操作语句,注意:语句中不得用联接操作
//第一个参数为当前页,第二个参数为要显示的列,第三个参数要操作的表,第四个参数为主键
//第五个参数为查询条件,第六个为排序规则
//如此生成的SQL语句直接执行就可以得结果
//应用的时候先用select count(*)和第三个参数以及第五个参数得出总记录数
//用getPagesize方法取得每页记录数,当然你可以写一个setPagesize方法来临时设定
//用getPageCount获得总页面数
//然后构造查询列和查询条件以及排序规则即可,下面有一个例子可以看看public String getPageSql(int CurPage,String Columns,String Tables,String PrimaryKey,String Station,String OrderKey)
{
String s = "select top "+PageSize+" " + Columns;
s = s + " from " + Tables;
s = s + " where " + PrimaryKey + " not in(";
s = s + "select top " + (CurPage-1)*PageSize + " " + PrimaryKey;
s = s + " from " + Tables + " where " + Station + "Order by " + OrderKey + ")";
s = s + " and " + Station + " order by " + OrderKey;
return s;
}//显示分页标志块
public String sp_page(String FileDirect,int CurPage,int PageCount,int RecordCount)
{
String numstr = "共<span style='color:#ff0000'> " + RecordCount + "</span> 条记录 ";
numstr = numstr + "<span style='color:#ff0000'>" + CurPage;
numstr = numstr + " </span>/<span style='color:#ff0000'> " + PageCount + "</span>";
String str=null;
if(PageCount>1)
{
if(CurPage==1)
{
str = " <span style='font-family:webdings'>";
str = str + "9 7 ";
str = str + "<A HREF='" + FileDirect + "Page=2' title='下一页'>8</A> ";
str = str + "<A HREF='" + FileDirect + "Page=" + PageCount + "' title='最后页'>:</A> </span>";
}
else if(CurPage==PageCount)
{
str = " <span style='font-family:webdings'>";
str = str + "<A HREF='" + FileDirect + "Page=1' title='第一页'>9</A> ";
str = str + "<A HREF='" + FileDirect + "Page=" + (PageCount-1) + "' title='前一页'>7</A> ";
str = str + "8 : </span>";
}
else
{
str = " <span style='font-family:webdings'>";
str = str + "<A HREF='" + FileDirect + "Page=1' title='第一页'>9</A> ";
str = str + "<A HREF='" + FileDirect + "Page=" + (CurPage-1) + "' title='上一页'>7</A> ";
str = str + "<A HREF='" + FileDirect + "Page=" + (CurPage+1) + "' title='下一页'>8</A> ";
str = str + "<A HREF='" + FileDirect + "Page=" + PageCount + "' title='最后页'>:</A> </span>";
}
}
else
{
str = " <span style='font-family:webdings'>";
str = str + "9 7 8 : </span>";
}
return numstr + str;
}//example:注意SelectRecord为javabean获得记录集rs的方法
String Station = "1=1 and CYear="+CYear+" and DeType<>0 and isDel="+dFlag;//查询条件
rs = db.SelectRecord("select count(*) from s_deputy where "+Station);
rs.first();
int RecordCount = rs.getInt(1);
int PageCount = db.getPageCount(RecordCount);
int Page = db.parseInt(request.getParameter("Page"));
if(RecordCount!=0)
{
Page = (Page<1)?1:Page;//小于1为第1页
Page = (Page>PageCount)?PageCount:Page;//大于最大页取最大页
String Columns = "A.ID,A.DeName,A.DeSimName,A.LoginName,";//所在获得的列
Columns = Columns + "(select DeTypeName from s_DeType where ID=A.DeType) as DeType,A.DeCode";
String Tables = "s_deputy as A";//操作的表
String PrimaryKey = "ID";//主键字
String OrderKey = "A.DeName";//排序关键字
String strSQL = db.getPageSql(Page,Columns,Tables,PrimaryKey,Station,OrderKey);
//out.println(strSQL);
rs = db.SelectRecord(strSQL);
}
String PageNav = db.sp_page("mana_deputy.jsp?dFlag=" + dFlag + "&",Page,PageCount,RecordCount);
out.println(PageNav);
thefirstwind(♂猜猜♂) 我给你们发了!请查收
[email protected]
[email protected]
[email protected]谢谢
[email protected]