본문 바로가기
개발자 전향 프로젝트

[Spring Boot] 세상 쉬운 검색창(검색 로직) 만들기 1-1 (View)

by 샘오리 2022. 9. 24.

웹페이지하면 검색창 없는 곳이 드물정도로 검색창이 많은데 

이 검색창 구현이 생각보다 엄청 쉽다는 것을 개발을 처음 접한 사람들은 모를 수 있다.

 

바로 구현해보자.

 

1. View단에서 텍스트를 입력할 수 있는 INPUT 태그를 만든다.

<input type="search" name="searchValue">

1-1. 위 INPUT 태그에 사용자가 입력한 값을 컨트롤러에 보낼 수 있도록 Form으로 감싸준다.

<form action="/search" method="GET">
...
</form>

 

1-2. Submit 역할을 하는 버튼을 만들고 응용하고 싶다면 이를 검색이라는 텍스트 대신 아이콘으로 대신한다.

<!--요건 기본 검색-->
<button type="submit">검색</button>

<!--요건 아이콘으로 대신한 검색-->
<button type="submit">
<i class="fa-solid fa-magnifying-glass"></i>
</button>

<!--위 아이콘을 사용하기 위해서는 아래의 fontawesome cdn 을 import 해줘야 한다.-->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css"/>

1-3. [ 응용 ] 아이콘을 누르지 않고 그냥 엔터를 쳐도 값이 전달되도록 한다.

<!-- 키보드를 딱 눌렀다 뗐을 때==onkeyup 작동하는 함수 enterkey 호출-->
<input onkeyup="enterkey()" type="search" name="searchValue"/>

<!-- 그 키보드가 keyCode==13, 즉, 엔터일 경우 반응하는 함수-->
function enterkey() {
        if (window.event.keyCode == 13) {
             <!-- 여기서 form에게 submit 하라고 리모컨 버튼 누르듯 조종하는 것-->
             document.getElementById("폼 ID").submit();
        }
}

1-4 [최종] 응용 VER.코드

 

<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css"/>
</head>

<body>
<form id="searchForm" action="/search" method="GET">
	<input onkeyup="enterkey()" type="search" name="searchValue"/>
	<button type="submit">
	<i class="fa-solid fa-magnifying-glass"></i>
	</button>
</form>

<script>
function enterkey() {
        if (window.event.keyCode == 13) {
             document.getElementById("searchForm").submit();
        }
}
</script>
</body>

2. 컨트롤러에서 해당 내용을 받는 내용은 다음글에!