ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©¼ö Á¦ÇÑ
¿Ö ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©¼ö¸¦ Á¦ÇÑÇØ¾ß Çϳª?
ÀÌÀü °Á¿¡¼ ¸¸µç ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©´Â ¹®Á¦°¡ ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î 6000 ÆäÀÌÁö°¡ ÀÌ°í ÆäÀÌÁö´ç ·¹ÄÚµå °¹¼ö(numPerPage)°¡ 10 À̶ó¸é 600°³ÀÇ Á÷Á¢ À̵¿ ¸µÅ©¸¦ ¸¸µì´Ï´Ù.
±×·¸´Ù¸é 600°³ÀÇ ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©´Â ¿¹»Û µðÀÚÀÎÀ» ÇìÁý¾î ³õÀ» °Ì´Ï´Ù.
ÀÌ¿¡ ´ëÇÑ ÇØ°áÃ¥Àº ÆäÀÌÁö¸¦ ±×·ìÈ ÇÏ¸é µË´Ï´Ù.
ÀÌ ±â´ÉÀ» ¿©±â¼´Â "ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©¼ö Á¦ÇÑ ±â´É" À̶ó°í ÇϰڽÀ´Ï´Ù.
ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©¼ö Á¦ÇÑ ±â´É ±¸Çö
ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©ÀÇ ¼ö¸¦ Á¦ÇÑÇϱâ À§Çؼ´Â ÆäÀÌÁö¸¦ ±×·ìÀ¸·Î ³ª´©¾î¾ß ÇÕ´Ï´Ù.
±×·ìÈÀÇ ´ë»óÀº ÆäÀÌÁöÀÔ´Ï´Ù.
ÆäÀÌÁö¸¦ ±×·ìÈ ÇÒ ¶§ ±×·ì ¹øÈ£¸¦ ÀúÀåÇÒ º¯¼öÀÇ À̸§À» block À̶ó°í ÇϰڽÀ´Ï´Ù.
"ÆäÀÌÁö ºÐÇÒ ±â´É"¿¡¼´Â ±×·ìÈ ´ë»óÀº ·¹ÄÚµåÀÌ°í ±×·ì¹øÈ£¸¦ ÀúÀåÇÒ º¯¼ö´Â curPage ÀÔ´Ï´Ù.
¸¸¾à ±×·ìÀÇ Å©±â¸¦ 5·Î Á¤Çß´Ù¸é (Áï, ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©¼ö¸¦ 5°³¸¸ º¸À̵µ·Ï Á¦ÇÑÇÑ´Ù¸é )
ÆäÀÌÁö [1] [2] [3] [4] [5] ´Â ±×·ì 1 ¿¡ ÇØ´çÇϰí, block Àº 1 ÀÔ´Ï´Ù.
ÆäÀÌÁö [6] [7] [8] [9] [10] ´Â ±×·ì 2 ¿¡ ÇØ´çÇϰí, block Àº 2 ÀÔ´Ï´Ù.
ÆäÀÌÁö [11] [12] [13] [14] [15] ´Â ±×·ì 3 ¿¡ ÇØ´çÇϰí, block Àº 3 ÀÔ´Ï´Ù.
ÀÌ·± °ü°è¸¦ Àß »ìÆìº¸¸é ÇöÀç curPage °¡ ¼ÓÇÑ ±×·ì Áï, block ¸¦ ±¸ÇÒ¼ö ÀÖ½À´Ï´Ù.
ºí·Ï´ç ÆäÀÌÁö ¼ö¸¦ ´ã´Â º¯¼ö¸íÀ» pagePerBlock ¶ó°í ÇÏ¸é ¾Æ·¡ÀÇ ÄÚµå·Î curPage °¡ ¼ÓÇÑ block ¸¦ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.
if ( ( curPage % pagePerBlock ) == 0 ) {
block = curPage / pagePerBlock;
} else {
block = curPage / pagePerBlock + 1;
}
À§ Äڵ忡¼ block ¸¦ ±¸Çß´Ù¸é ÀÌ block ¿¡ ¼ÓÇÑ Ã¹¹øÂ° ÆäÀÌÁö¿Í ¸¶Áö¸· ÆäÀÌÁö ¹øÈ£¸¦ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.
// block ¿¡ ¼ÓÇÑ Ã¹¹øÂ° ÆäÀÌÁö °è»ê int firstPage = ( block - 1 ) * pagePerBlock + 1; // block ¿¡ ¼ÓÇÑ ¸¶Áö¸· ÆäÀÌÁö °è»ê int lastPage = block * pagePerBlock;
·çÇÁ¹®À» ÀÌ¿ëÇØ¼ ù¹øÂ° ÆäÀÌÁöºÎÅÍ ¸¶Áö¸· ÆäÀÌÁö±îÁö ¸µÅ©¸¦ ¸¸µì´Ï´Ù.
for ( int i = firstPage; i <= lastPage; i++ ) {
// ÆäÀÌÁö ¸µÅ© »ý¼º
}
¾Æ·¡ Äڵ带 1Â÷ ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©¼ö Á¦ÇÑÀ» ±¸ÇöÇϱâ À§ÇØ ±âÁ¸ Äڵ忡 Ãß°¡ÇÕ´Ï´Ù.
list.jsp ver 1
// ºí·Ï´ç ÆäÀÌÁö ¼ö¸¦ Á¤ÇÑ´Ù.
int pagePerBlock = 5;
// ÇöÀç ÆäÀÌÁö°¡ ¼ÓÇÑ ºí·ÏÀ» °è»êÇÑ´Ù.
int block = 1;
if((curPage % pagePerBlock) == 0) {
block = curPage / pagePerBlock;
} else {
block = curPage / pagePerBlock + 1;
}
// ºí·Ï¿¡¼ ¸µÅ©ÇÒ Ã¹¹øÂ° ÆäÀÌÁö¿Í ¸¶Áö¸· ÆäÀÌÁö¸¦ °è»êÇÑ´Ù.
int firstPage = ( block - 1 ) * pagePerBlock + 1;
int lastPage = block * pagePerBlock;
// ·çÇÁ¹®À» ÀÌ¿ëÇØ¼ ù¹øÂ° ÆäÀÌÁöºÎÅÍ ¸¶Áö¸· ÆäÀÌÁö±îÁö ¸µÅ©¸¦ ¸¸µç´Ù.
for( int i = firstPage; i <= lastPage; i++) {
..
À§ÀÇ ÄÚµåÁ¶°¢¸¦ ±âÁ¸ÀÇ ¸®½ºÆ® ÆäÀÌÁö¿¡ Ãß°¡Çؼ ½ÇÇàÇØ º¾´Ï´Ù.
ÇöÀç ÆäÀÌÁö°¡ ¼ÓÇÑ block À» ±¸Çؼ ±× block ¿¡¼ ¸µÅ©ÇÒ Ã¹¹øÂ° ÆäÀÌÁö¿Í ¸¶Áö¸· ÆäÀÌÁö¸¦ ±¸Çؼ ¸µÅ©ÇÏ´Â µ¥´Â ¼º°øÇß½À´Ï´Ù.
ÇÏÁö¸¸ ´Ù¸¥ ±×·ìÀ¸·Î, Áï ´Ù¸¥ block À¸·Î À̵¿ÇÒ ¼ö´Â ¾ø½À´Ï´Ù.
¿©·¯°¡Áö ¹æ¹ýÀÌ ÀÖÀ» ¼ö ÀÖÁö¸¸ ÇöÀç °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â ¹æ¹ýÀº
ÇöÀç block ÀÌ 1 º¸´Ù Å©´Ù¸é [ÀÌÀü] ¸µÅ©¸¦ ¸¸µé¾î¼ firstPage - 1 ÀÎ ÆäÀÌÁö ¹øÈ£·Î ¸µÅ©½Ã۰í, block ÀÌ ÃÑ ºí·Ï¼öº¸´Ù ÀÛ´Ù¸é
[´ÙÀ½] ¸µÅ©¸¦ ¸¸µé°í lastPage + 1 ÀÎ ÆäÀÌÁö ¹øÈ£·Î ¸µÅ©½Ã۸é ÀÎÁ¢ÇÑ block À¸·Î [ÀÌÀü] [´ÙÀ½] ¸µÅ©¸¦ ÀÌ¿ëÇØ¼ À̵¿ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
ÃÑ ºí·Ï¼ö¸¦ ±¸ÇØ¾ß Çϴµ¥ ÃÑ ºí·Ï¼ö¸¦ ÀúÀåÇÒ º¯¼ö¸íÀ» totalBlock ¶ó°í ÇÏ¸é ¾Æ·¡ ÄÚµå·Î ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.
int totalBlock = 0;
if ( totalPage > 0 ) {
if ( ( total_page % pagePerBlock ) == 0 ) {
totalBlock = totalPage / pagePerBlock;
} else {
totalBlock = totalPage / pagePerBlock + 1;
}
}
À§ ¼³¸íÀ» Åä´ë·Î Áö±Ý±îÁöÀÇ Äڵ忡 ¾Æ·¡ ÄÚµåÁ¶°¢(±½ÀºÃ¼)À» Ãß°¡ÇÕ´Ï´Ù.
[ÀÌÀü] [´ÙÀ½] ¸µÅ©¿¡ °üÇÑ ÄÚµåÀ̹ǷΠfor ¹® À§ ¾Æ·¡·Î Ãß°¡ÇÕ´Ï´Ù.
list.jsp ver 2
// ÃÑ ºí·Ï¼ö¸¦ °è»êÇÑ´Ù. int totalBlock = 0; if ( totalPage > 0 ) { if ( ( totalPage % pagePerBlock ) == 0 ) { totalBlock = totalPage / pagePerBlock; } else { totalBlock = totalPage / pagePerBlock + 1; } } // ÇöÀç block > 1 ¸é [ÀÌÀü]¸µÅ©¸¦ ¸¸µé°í firstPage - 1 ÆäÀÌÁö·Î ¸µÅ© int prevPage = 0; if(block > 1) { prevPage = firstPage -1; .. <a href="list.jsp?curPage=<%=prevPage%>">[ÀÌÀü]</a> .. } .. // ·çÇÁ¹®À» ÀÌ¿ëÇØ¼ ù¹øÂ° ÆäÀÌÁöºÎÅÍ ¸¶Áö¸· ÆäÀÌÁö±îÁö ¸µÅ©¸¦ ¸¸µç´Ù. for( int i = firstPage+1; i <= lastPage; i++) { .. // block < totalBlock ¸é [´ÙÀ½]¸µÅ©¸¦ ¸¸µé°í lastPage + 1 ¸¦ ÆäÀÌÁö¹øÈ£·Î ¸µÅ© if(block < totalBlock) { int nextPage = lastPage + 1; .. <a href="list.jsp?curPage=<%=nextPage%>">[´ÙÀ½]</a> .. } ..
ÃÑ ÆäÀÌÁö°¡ 20ÀÏ ¶§ pagePerBlock °¡ 7 À̶ó¸é ÃÑ ºí·Ï¼ö°¡ 3 À¸·Î °è»êµÇ¸é¼ ¸¶Áö¸· ºí·Ï¿¡¼ ºÒÇÊ¿äÇÑ ÆäÀÌÁö 21ÀÌ »ý±é´Ï´Ù.
ÃÑ 20ÆäÀÌÁö¸¦ pagePerBlock·Î ³ª´« °á°ú totalBlock °¡ 3ÀÌ µÇ¸é¼ block ÀÌ 3¿¡¼ 15 ~ 21 ÆäÀÌÁö¸¦ ¸¸µé±â ¶§¹®ÀÔ´Ï´Ù.
ÀÌ·± ºÒÇÊ¿ëÇÑ ÆäÀÌÁö ¹øÈ£°¡ »ý¼ºµÇ´Â °ÍÀ» ¸·±â À§Çؼ ¾Æ·¡ Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
ÃÑ ÆäÀÌÁö¼ö´Â ¸¶Áö¸· ÆäÀÌÁö ¹øÈ£À̱⵵ ÇÕ´Ï´Ù.
list.jsp ver 3
if ( block >= totalBlock ) {
lastPage = totalPage;
}
´ÙÀ½Àº Á¾ÇÕÀûÀÎ ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©¼ö Á¦ÇÑ ¾Ë°í¸®ÁòÀ» Á¤¸®Çß½À´Ï´Ù.
ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©¼ö Á¦ÇÑ ¾Ë°í¸®Áò
1. ºí·Ï´ç ÆäÀÌÁö Á÷Á¢ À̵¿ ¸µÅ©¼ö¸¦ Á¤ÇÑ´Ù.
2. ÃÑ ºí·Ï¼ö(totalBlock)¸¦ °è»êÇÏ´Ù.
3. ÇöÀç ÆäÀÌÁö°¡ ¼ÓÇÑ ºí·ÏÀ» °è»êÇÑ´Ù.
4. ºí·Ï¿¡¼ ¸µÅ©ÇÒ Ã¹¹øÂ° ÆäÀÌÁö¿Í ¸¶Áö¸· ÆäÀÌÁö¸¦ °è»êÇÑ´Ù.
5. ÇöÀç block >= totalBlock ¶ó¸é lastPage ´Â totalPage °ªÀ» ´ëÀÔÇÑ´Ù.
6. ÇöÀç block > 1 ¸é [ÀÌÀü]¸µÅ©¸¦ ¸¸µé°í firstPage - 1 ÆäÀÌÁö¹øÈ£·Î ¸µÅ©¸¦ ¸¸µç´Ù.
7. ·çÇÁ¹®À» ÀÌ¿ëÇØ¼ ù¹øÂ° ÆäÀÌÁöºÎÅÍ ¸¶Áö¸· ÆäÀÌÁö±îÁö ¸µÅ©¸¦ ¸¸µç´Ù.
8. ÇöÀç block < total_blcok ¸é [´ÙÀ½]¸µÅ©¸¦ ¸¸µé°í lastPage + 1 ÆäÀÌÁö¹øÈ£·Î ¸µÅ©¸¦ ¸¸µç´Ù.
- ´ÙÀ½ °Á : °Ë»ö
- ÀÌÀü °Á : ÆäÀÌÁö ºÐÇÒ ±â´É
