본문 바로가기

국비과정/팀프로젝트

[SellAS] 검색

정말정말 어렵다.

 

검색카테고리와(searchCate) 검색값(search)을 get방식의 form으로 전달했다.

 

http://localhost:8080/sortcate?search=&searchCate=&ino=1&sort=0

이렇게 url의 값을 잡을때 

 

NormalController 에서는 컨트롤러에서 default값을 설정안해두면 이걸 null값으로 잡는다.

@GetMapping("/sortcate")
	public String sortNormalTradeList(@RequestParam(value = "ino",required = true, defaultValue = "1")int ino,
										@RequestParam(name = "sort", defaultValue = "0") int sort,
										@RequestParam(value = "searchCate", required = false , defaultValue = "title") String searchCate,
							            	@RequestParam(value = "search", required = false) String search,
										Model model, HttpSession session) {
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		System.out.println("*********************");
		System.out.println("ino: " + ino);
		System.out.println("sort: " + sort);
		System.out.println("searchCate: " + searchCate);
		System.out.println("search: " + search);	// null
		// {search=, searchCate=, ino=1, sort=0}
        
        ........

 

그런데 jsp에서는 (el태그로 잡아낼 때)

${param.search } 로 잡아낼 수 있는데 위처럼 비어있는 값인 경우 " " 공백으로 잡는다.

 

let search = "${param.search }";

// 개발자옵션 소스코드에서 확인해보면 아래처럼 뜬다.
let search = "";

 


 

mapper 에서 쿼리문을 아래의 형식으로 만들어서 

search의 값(검색값) 이 없더라고 null이 아닌 " " 공백으로 바꾼 후에 보내야 했다. 

 

스크롤 이벤트가 발생해서 데이터를 추가로 받는 경우(이 값을 jsp에서 param으로 잡아서 받는 경우_" " 공백값)와

아닌경우(컨트롤러에서 직접 url값을 잡는 경우_null 값)를 다르게 잡아야 해서 여러번 수정했었다.......

<select id="nextNormalBoardList" parameterType="Map" resultType="Map">
SELECT *, (SELECT COUNT(*) FROM normaltradeview 
	WHERE
	   <choose>
	      <when test="searchCate == 'title'">ttitle LIKE CONCAT('%', #{search}, '%')</when>
	      <when test="searchCate == 'content'">tcontent LIKE CONCAT('%', #{search}, '%')</when>
	      <when test="searchCate == 'writer'">mnickname LIKE CONCAT('%', #{search}, '%')</when>
	   </choose>
   ) as count
	FROM normaltradeview 
	WHERE
	<if test="search eq Nosearch">search = #{search} AND</if>
   <choose>
      <when test="searchCate == 'title'">ttitle LIKE CONCAT('%', #{search}, '%')</when>
      <when test="searchCate == 'content'">tcontent LIKE CONCAT('%', #{search}, '%')</when>
      <when test="searchCate == 'writer'">mnickname LIKE CONCAT('%', #{search}, '%')</when>
   </choose>
   ${orderBy}
   LIMIT ${startpage}, ${pageCount}
</select>

 

 


 

'국비과정 > 팀프로젝트' 카테고리의 다른 글

[팀] 프로미스 함수  (0) 2023.11.13
[SellAS] 페이징  (0) 2023.11.03
[팀] 스크롤페이징  (0) 2023.11.03
[SellAS] 멀티보드 정리  (0) 2023.10.27
[팀] 스크롤 관련 자료  (0) 2023.10.20