📄 在jsf中实现分页(一).htm
字号:
style="COLOR: #000000"> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">t:dataScroller </SPAN><SPAN
style="COLOR: #ff0000">id</SPAN><SPAN
style="COLOR: #0000ff">="scroll_1"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> for</SPAN><SPAN
style="COLOR: #0000ff">="data"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> fastStep</SPAN><SPAN
style="COLOR: #0000ff">="10"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> paginator</SPAN><SPAN
style="COLOR: #0000ff">="true"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> paginatorMaxPages</SPAN><SPAN
style="COLOR: #0000ff">="9"</SPAN><SPAN style="COLOR: #0000ff">></SPAN><SPAN
style="COLOR: #000000"><BR><IMG src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">f:facet </SPAN><SPAN
style="COLOR: #ff0000">name</SPAN><SPAN
style="COLOR: #0000ff">="first"</SPAN><SPAN
style="COLOR: #ff0000"> </SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">t:graphicImage </SPAN><SPAN
style="COLOR: #ff0000">url</SPAN><SPAN
style="COLOR: #0000ff">="images/arrow-first.gif"</SPAN><SPAN
style="COLOR: #ff0000"> border</SPAN><SPAN
style="COLOR: #0000ff">="1"</SPAN><SPAN
style="COLOR: #ff0000"> </SPAN><SPAN
style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"></</SPAN><SPAN
style="COLOR: #800000">f:facet</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">f:facet </SPAN><SPAN
style="COLOR: #ff0000">name</SPAN><SPAN
style="COLOR: #0000ff">="last"</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">t:graphicImage </SPAN><SPAN
style="COLOR: #ff0000">url</SPAN><SPAN
style="COLOR: #0000ff">="images/arrow-last.gif"</SPAN><SPAN
style="COLOR: #ff0000"> border</SPAN><SPAN
style="COLOR: #0000ff">="1"</SPAN><SPAN
style="COLOR: #ff0000"> </SPAN><SPAN
style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"></</SPAN><SPAN
style="COLOR: #800000">f:facet</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">f:facet </SPAN><SPAN
style="COLOR: #ff0000">name</SPAN><SPAN
style="COLOR: #0000ff">="previous"</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">t:graphicImage </SPAN><SPAN
style="COLOR: #ff0000">url</SPAN><SPAN
style="COLOR: #0000ff">="images/arrow-previous.gif"</SPAN><SPAN
style="COLOR: #ff0000"> border</SPAN><SPAN
style="COLOR: #0000ff">="1"</SPAN><SPAN
style="COLOR: #ff0000"> </SPAN><SPAN
style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"></</SPAN><SPAN
style="COLOR: #800000">f:facet</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">f:facet </SPAN><SPAN
style="COLOR: #ff0000">name</SPAN><SPAN
style="COLOR: #0000ff">="next"</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">t:graphicImage </SPAN><SPAN
style="COLOR: #ff0000">url</SPAN><SPAN
style="COLOR: #0000ff">="images/arrow-next.gif"</SPAN><SPAN
style="COLOR: #ff0000"> border</SPAN><SPAN
style="COLOR: #0000ff">="1"</SPAN><SPAN
style="COLOR: #ff0000"> </SPAN><SPAN
style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"></</SPAN><SPAN
style="COLOR: #800000">f:facet</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">f:facet </SPAN><SPAN
style="COLOR: #ff0000">name</SPAN><SPAN
style="COLOR: #0000ff">="fastforward"</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">t:graphicImage </SPAN><SPAN
style="COLOR: #ff0000">url</SPAN><SPAN
style="COLOR: #0000ff">="images/arrow-ff.gif"</SPAN><SPAN
style="COLOR: #ff0000"> border</SPAN><SPAN
style="COLOR: #0000ff">="1"</SPAN><SPAN
style="COLOR: #ff0000"> </SPAN><SPAN
style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"></</SPAN><SPAN
style="COLOR: #800000">f:facet</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">f:facet </SPAN><SPAN
style="COLOR: #ff0000">name</SPAN><SPAN
style="COLOR: #0000ff">="fastrewind"</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"><</SPAN><SPAN
style="COLOR: #800000">t:graphicImage </SPAN><SPAN
style="COLOR: #ff0000">url</SPAN><SPAN
style="COLOR: #0000ff">="images/arrow-fr.gif"</SPAN><SPAN
style="COLOR: #ff0000"> border</SPAN><SPAN
style="COLOR: #0000ff">="1"</SPAN><SPAN
style="COLOR: #ff0000"> </SPAN><SPAN
style="COLOR: #0000ff">/></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"></</SPAN><SPAN
style="COLOR: #800000">f:facet</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif"
align=top> </SPAN><SPAN
style="COLOR: #0000ff"></</SPAN><SPAN
style="COLOR: #800000">t:dataScroller</SPAN><SPAN
style="COLOR: #0000ff">></SPAN><SPAN style="COLOR: #000000"><BR><IMG
src="在JSF中实现分页(一).files/None.gif" align=top></SPAN></DIV>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"
align=left><o:p><BR></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; tab-stops: 18.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN
style="mso-tab-count: 1"> </SPAN></SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">这里定义了我们用于分页的<SPAN
lang=EN-US><t:dataScroller></SPAN>,最主要的是配置该分页<SPAN
lang=EN-US>Component</SPAN>针对哪个<SPAN lang=EN-US>dataTable</SPAN>进行分页的“<SPAN
lang=EN-US>for</SPAN>”属性,该属性与<SPAN
lang=EN-US>dataTable</SPAN>绑定,并对其进行分页,在这里,绑定了第一部分中的<SPAN
lang=EN-US>id="data"</SPAN></SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">dataTable</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,下面有很多的</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><t:facet></SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是指定分页的导航样式的,这里使用了图片作为导航,可以把他们改成文字形式的导航。</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; tab-stops: 18.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN
style="mso-tab-count: 1"> </SPAN></SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当然这只是最简单,也是一种不推荐的分页方式,因为在每次进行分页的时候,将会从数据库中取回所有的记录放入</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">List</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中,然后,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">dataScroller</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在对这个</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">List</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行分页,如果在数据量很大的情况下,这种方式显然是不符合要求的,假设每条记录占用</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">1k</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">内存,数据库中有</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">100</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">万条记录,每次要把这个</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">List</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">全部读取出来将占用</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">1G</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">内存。我们需要一种</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Load
on demand</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方式的读取,也就是只在需要查看某页的时候读取该页的数据。</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; tab-stops: 18.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN
style="mso-tab-count: 1"> </SPAN></SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">另外一方面,</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">JSF</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的生命周期中有多个阶段会调用到</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">#{pagedSort.cars}</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中对应的方法,如果在这里调用了数据访问逻辑,就会在只显示一次页面的情况下进行多次数据库操作,也是相当的耗费资源的。</SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; tab-stops: 18.75pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN
style="mso-tab-count: 1"> </SPAN></SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所以我们需要有更好的分页方式去解决以上问题,下一篇我将介绍另一种方法以改善这些问题。</SPAN></o:p></SPAN></SPAN></P></o:p></SPAN></SPAN>
<DIV class=postDesc>posted on 2005-12-29 20:55 <A
href="http://www.blogjava.net/steady/">steady</A> 阅读(3835) <A
href="http://www.blogjava.net/steady/archive/2005/12/29/25935.aspx#Post">评论(1)</A>
<A
href="http://www.blogjava.net/steady/admin/EditPosts.aspx?postid=25935">编辑</A> <A
href="http://www.blogjava.net/steady/AddToFavorite.aspx?id=25935">收藏</A> <A
href="http://www.blogjava.net/steady/services/trackbacks/25935.aspx">引用</A>
所属分类: <A href="http://www.blogjava.net/steady/category/6389.html">JSF &
Myfaces</A> </DIV></DIV><IMG height=1 src="在JSF中实现分页(一).files/25935.jpg"
width=1> <!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
rdf:about="http://www.blogjava.net/steady/archive/2005/12/29/25935.html"
dc:identifier="http://www.blogjava.net/steady/archive/2005/12/29/25935.html"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -