꾸준하게 기록하기
article thumbnail

 

게시판 페이징(paging) 처리하기 (1) 에서는 jsp, js 에 관련된 코드 정리하였고
(2) 에서는 나머지 코드를 정리하여고 한다.

 

3. Controller.java

<java />
@RequestMapping(value = "/getMyBoardList.ajax", method = RequestMethod.POST, produces="text/plain;charset=UTF-8") @ResponseBody public String getMyBoardList(HttpServletRequest request, HttpServletResponse response, Model model, @RequestParam(value = "mainParams", required = false, defaultValue = "{}") String mainParams ) throws Exception { String decodeResult = URLDecoder.decode(XssPreventer.unescape(mainParams), "UTF-8"); Map<String, Object> searchParams = (new Gson()).fromJson(decodeResult, Map.class); Map<String, Object> result = new HashMap<String, Object>(); int pagesize = getPagesize(searchParams); int pageno = getPageNo(searchParams); searchParams.put("startRownum", ((pageno - 1) * pagesize)); searchParams.put("pagesize", pagesize); List<Board> lists = myBoardService.getMyBoardList(searchParams); int totalCnt = myBoardService.getMyBoardListTotalCnt(searchParams); result.put("lists", lists); result.put("totalCnt", totalCnt); return (new Gson()).toJson(result); }

→ js에서 파라미터로 보낸 pageNo, pagesize를 조회할 때 사용하도록

   startRownum, pagesize 를 계산하여 searchParams에 넣어서 보냄

→   startRownum : pageNo 가 1일때 startRownum은 0 , pageNo 가 2일때 startRownum은 5 

     쿼리 조회시 limit 을 사용했는데 시작점으로 들어감(첫번째 파라미터가 0부터 시작)

→ pagesize  : 게시물을 몇 개를 가져올지

 

4. Service.java

<java />
public List<Board> getMyBoardList(Map<String, Object> searchParams) { try { return myBoardDao.getMyBoardList(searchParams); } catch(Exception e) { e.printStackTrace(); return null; } }

 

5. Dao.java

<java />
public List<Board> getBoardList(Map<String, Object> searchParams) throws Exception { return getSqlSessionTemplate().selectList("myboard.getBoardList", searchParams); }

 

6. sql.xml

<sql />
<select id="getBoardList" parameterType="java.util.Map" resultType="com.mayday.mufun.model.Board"> select @num:=@num+1 AS rn, numno, boardno, title, contents, vieword, regdate, viewcnt, memberno, membername, boardname, depth, groupno, answerstatus from( select t1.numno, t1.boardno, t1.title, t1.contents, t1.vieword, DATE_FORMAT(t1.regdate,'%Y-%m-%d') regdate, t1.viewcnt, t1.memberno, t2.membername, t1.depth, t1.groupno, t1.answerstatus from tb_board t1 inner join tb_member t2 ON t1.memberno = t2.memberno where t1.memberno = #{memberno} and t1.groupno = t1.numno order by t1.regdate desc )as tt1, (select @num:=0) R <if test='pageNo > 0'> limit ${startRownum}, ${pagesize} </if> </select>

 

 

  • 한 페이지당 5개의 게시글을 볼 수 있도록 설정

페이징을 적용한 게시판

 

 

728x90

'Backend > Spring' 카테고리의 다른 글

[Lombok] 롬복 사용하기  (0) 2021.08.04
[Lombok] 롬복 설치하기  (0) 2021.08.04
스프링 게시판 - 페이징(paging) 처리하기 (1)  (0) 2021.08.03
Tiles  (0) 2021.08.02
@RequestParam 어노테이션 사용하기  (0) 2021.07.01
profile

꾸준하게 기록하기

@:_:

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!