정말정말 어렵다.
검색카테고리와(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 |