인텔리제이에서 대문자 소문자를 한번에 다 바꿔주는 단축키는 ctrl + shift + U이다.
검색기능은 spring부분은 미리 다 구현을 해놓았기 때문에 jsp영역만 수정하면 된다. 대신 오류를 발견해 controller부분과 repoistory부분을 수정 하겠다.
@Query(value = "SELECT D.* FROM TB_DEPT D\n" +
"WHERE D.DNAME LIKE UPPER('%'|| :dname ||'%')")
쿼리 부분을 수정했다. 기존에는 소문자를 입력하면 대문자가 인식을 못해서 에러가 났다. 그래서 upper함수를 사용해 like의 변수에 소문자가 들어와도 무조건 대문자로 검색이 되게 만들어 주었다.
long blockEndPage = blockStartPage + size -1;
blockEndPage = (blockStartPage>=pageRes.getTotalPages())? pageRes.getTotalPages()-1 : blockEndPage;
blockEndPage = (blockEndPage<0)? 0:blockStartPage;
model.addAttribute("endPage", blockEndPage);
검색 결과를 찾지 못하면 현재 페이지가 0이 되어 blockEndPage가 음수가 된다. 이때 jsp에서의 반복문에서는 begin은 0이고 end가 음수가 되어 오류가 난다.
(blockEndPage<0)? 0:blockStartPage 식을 이용해서 음수를 0으로 만들어준다.
<form class="input-group mb-3 mt-3" role="search" action="/basic/dept" method="get">
<%--todo 검색 input 태그--%>
<input type="text" class="form-control" placeholder="Insert dname" aria-label="Recipient's username" aria-describedby="button-addon2" name="dname">
<input type="hidden" id="page" name="page" value="0">
<input type="hidden" id="size" name="size" value="3">
<%--todo 검색 버튼--%>
<button class="btn btn-outline-primary" type="submit" id="button-addon2">Search</button>
</form>
form 태그에 action과 method를 추가해주었다.
input 태그에 naem속성으로 검색될 속성을 준다. ename으로 검색할 것이기에 ename을 주었다.
보이지 않는 hidden타입의 input을 두개 만들어 각각 page와 size를 name으로 가지게 해줬다. 그리고 값으로 각각 0과 3을 주었다.
없는 값을 넣어도 에러가 나지 않고, 소문자를 넣어도 대문자 검색이 잘 되는 검색 기능을 만들었다.