Rhc
20
2021-02-22 17:27:56
3
410

전자정부 프레임워크 페이징 처리시 검색값 유지


전자정부 프레임워크 페이지네이션 사용중인데

페이징을 전자정부에서 제공하는 기본 페이징을 사용하고 있습니다.

<input name="searchVal" id="searchVal" type="text" value="${testVO.searchVal}" />
<div align="center">
   <ui:pagination paginationInfo = "${paginationInfo}"	 
    type="image" jsFunction="linkPage" />
   <form:hidden path="pageIndex" />
</div>

이코드에서 페이징 스크립트로 넘어갈시


function linkPage(pageNo){
	var frm = document.searchForm;
	
	
	frm.pageIndex.value = pageNo;
	frm.action = "<c:url value='/test.do'/>";
	frm.submit();
}

이런 방식으로 스크립트에서 자바단으로 넘겨주는데

문제가 검색을 하고 다음 페이지로 이동할 시에 검색어가 유지가 안된다는 것입니다.


아래는 컨트롤러입니다.



                noticeManVO.setPageUnit(propertiesService.getInt("pageUnit"));
		noticeManVO.setPageSize(propertiesService.getInt("pageSize"));
		
		/** paging */
		PaginationInfo paginationInfo = new PaginationInfo();
		paginationInfo.setCurrentPageNo(testVO.getPageIndex());
		paginationInfo.setRecordCountPerPage(testVO.getPageUnit());
		paginationInfo.setPageSize(testVO.getPageSize());

		testVO vo = new testVO();
		
		vo.setPageIndex(paginationInfo.getCurrentPageNo());
		vo.setFirstIndex(paginationInfo.getFirstRecordIndex());
		vo.setLastIndex(paginationInfo.getLastRecordIndex());
	
vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
		
		vo.setSearchKey(testVO.getSearchKey());
		vo.setSearchVal(testVO.getSearchVal());  <<<<< 검색어
		vo.setReceiptStartDate(testVO.getReceiptStartDate());
		vo.setReceiptEndDate(testVO.getReceiptEndDate());
		
		vo.setNoticeNo(testVO.getNoticeNo());
		
		Map<String, Object> map = 
                pagingService.selectTestList(vo);


아래는 쿼리문입니다.


<![CDATA[
SELECT * FROM (
SELECT ROWNUM as RM,  TA.* FROM (
	SELECT 
	  A.USER_NO
	 , A.USER_NAME
	 , A.COMPANY_NAME
	 , A.SCHOOL_NAME
	 , A.USER_AGE
	 , A.USER_EMAIL
	 , A.PHONE_CELL
	 , A.HOME_ADDR || A.HOME_ADDR_DETAIL AS HOME_ADDR
	 , B.PARTNER_COUNT
	 , TO_CHAR(A.CREATE_DATE, 'YYYY-MM-DD') as CREATE_DATE
		FROM TO_RECEIPT_USER A,
			(
			  SELECT COUNT(USER_NO) as PARTNER_COUNT, NOTICE_NO
				FROM TO_RECEIPT_USER
				WHERE PARTNER_NO != '0'
				GROUP BY NOTICE_NO
			) B
			WHERE 1=1
			AND A.NOTICE_NO = #noticeNo#
			AND A.NOTICE_NO = B.NOTICE_NO(+)
			AND A.PARTNER_NO = '0'
			]]>	
		<dynamic>
			<isNotEmpty property="receiptStartDate">
			<isNotEmpty property="receiptEndDate">						
			<![CDATA[						
				AND ((A.CREATE_DATE >= #receiptStartDate# AND A.CREATE_DATE <= #receiptEndDate#)
				OR  (A.CREATE_DATE <= #receiptStartDate# AND A.CREATE_DATE >= #receiptEndDate#)
				OR  (A.CREATE_DATE >= #receiptStartDate# AND A.CREATE_DATE <= #receiptEndDate#))    		
    		        ]]>						
			</isNotEmpty>
			</isNotEmpty>
			<isNotEmpty property="searchVal">
			<isEqual prepend="AND" property="searchKey" compareValue="1">
    		        <![CDATA[						
				A.USER_NAME LIKE '%' || #searchVal# || '%'
    		        ]]>						    
			</isEqual>
			<isEqual prepend="AND" property="searchKey" compareValue="2">
    		        <![CDATA[						
				A.PHONE_CELL LIKE '%' || #searchVal# || '%'
    		        ]]>						    
			</isEqual>
			<isEqual prepend="AND" property="searchKey" compareValue="3">
			<![CDATA[						
				A.HOME_ADDR LIKE '%' || #searchVal# || '%'
    		        ]]>						    
			</isEqual>
			</isNotEmpty>
	      </dynamic>
			ORDER BY A.CREATE_DATE
		) TA
		ORDER BY CREATE_DATE DESC		
	    ) TC
	    WHERE RM BETWEEN #firstIndex# + 1 AND #firstIndex# + #recordCountPerPage#


여기서 페이징 처리를할때 검색값을 유지시키며 넘길 방법이 있을까요? 


전자정부 기본옵션으로 페이징 하는건 처음이라 헷갈리네요

0
  • 답변 3

  • jemcjycjh
    111
    2021-02-22 17:41:41 작성 2021-02-22 17:41:58 수정됨


    검색어가

    <form>

    <input name="searchVal" id="searchVal" type="text" value="${testVO.searchVal}" />

    </form>

    안에 들어가있죠?

    <input name="searchVal" id="searchVal" type="text" value="${not empty testVO.searchVal ? testVO.searchVal:param.searchVal}" />

    controller 에서 mav.addObject("testVO"testVO); 해줬다면 

    testVO.searchVal 로 사용 가능할거 같아요

    안해줬다면 

    param.searchVal

  • Rhc
    20
    2021-02-23 09:32:20

    jemcjycjh 헉 감사합니다.

    진짜 알기 쉽게 설명해주시네요 가르쳐 주신대로 하니까 

    검색어가 남아있어서 검색어를 유지하면서 넘어가네요 ㅎㅎ 감사합니다 선배님

  • jemcjycjh
    111
    2021-07-22 12:28:16

    추천 감사합니다

    살면서 추천은 처음 받아보네요 ㅋㅋㅋㅋㅋ

    몇 개월 만에 로그인이라 이제 확인 했어요


  • 로그인을 하시면 답변을 등록할 수 있습니다.