TODAY TOTAL
[Spring] 검색 화면 처리

 

검색창을 게시판에 보여지게 하고 그 검색을 계속 끌고 가야한다.(페이지넘길때도 검색을 끌고 가기)

 

 

 

list.jsp

 <!-- 검색  -->
   <form id='searchForm' action="/board/list" method="get">
   <select name = "type">
     <option value=""${pageMaker.cri.type == null?"selected":""}>---</option>
     <option value="T"${pageMaker.cri.type eq 'T'?"selected":""}>제목</option>
     <option value="C"${pageMaker.cri.type eq 'C'?"selected":""}>내용</option>
     <option value="W"${pageMaker.cri.type eq 'W'?"selected":""}>작성자</option>
     <option value="TC"${pageMaker.cri.type == 'TC'?"selected":""}>제목+내용</option>
     <option value="TCW"${pageMaker.cri.type == 'TCW'?"selected":""}>제목+내용+작성자</option>
   </select>
     <input type = 'text' name = 'keyword' value='${pageMaker.cri.keyword }'>
     <input type = 'hidden' name = 'pageNum' value='${pageMaker.cri.pageNum }'>
     <input type = 'hidden' name = 'amount' value='${pageMaker.cri.amount }'>
     <button class='btn btn-default'>Search</button>
   </form>

 

BoardMapper.xml

<sql id="criteria">
  <trim prefix="(" suffix=") AND">
	<foreach collection="typeArr" item="type" separator="OR">
		<if test="type == 'T'.toString()">
			title like '%'||#{keyword}||'%'
		</if>
		
		<if test="type == 'C'.toString()">
			content like '%'||#{keyword}||'%'
		</if>
		
		<if test="type == 'W'.toString()">
			writer like '%'||#{keyword}||'%'
		</if>
	</foreach>
	</trim>
  </sql>

option - selected 속성은 페이지가 로드될 때 옵션 중에서 미리 선택되어지는 옵션을 말함

 

pageNum을 hidden으로 안보이게 하고 자바스크립트 함수를 만들어 페이지번호를 찾게 한다.

 

 

#searchForm 자바스크립트

var searchForm = $("#searchForm");
  	
  	$("#searchForm button").on("click",function(e){
  		e.preventDefault();
  		console.log(".....................");
  		
  		searchForm.find("input[name='pageNum']").val(1);
  		
  		searchForm.submit();
  	});

 

근데 여기서 페이지를 넘길때도 검색 값을 들고 가야한다.

 

그럴려면 actionForm에 type hidden을 줘서 keyword와 type을 써서 유지되게 한다.

 

<form id='actionForm' action="/board/list" method='get'>
  <input type='hidden' name='pageNum' value = '${pageMaker.cri.pageNum}'>
  <input type='hidden' name='amount' value = '${pageMaker.cri.amount}'>
  <input type='hidden' name='type' value = '${pageMaker.cri.type}'>
  <input type='hidden' name='keyword' value = '${pageMaker.cri.keyword}'>
</form>

 

 

get.jsp에도 똑같이 hidden type,keyword를 추가해야한다.

 

 

'Back-End > Spring' 카테고리의 다른 글

[Spring] 댓글 구현 2  (0) 2021.08.29
[Spring] 댓글 구현  (0) 2021.08.29
[Spring] 검색 처리  (0) 2021.08.11
[Spring] 페이징 처리 및 번호 출력  (0) 2021.08.06
[Spring] 인덱스,힌트와 ROWNM  (0) 2021.08.05
  Comments,     Trackbacks