제시해 주신 코드는 웹페이지의 검색 사용자 인터페이스(UI)를 구성하는 HTML과 JSTL(JSP Standard Tag Library) 코드가 혼합된 부분입니다.
이 코드는 게시판 목록 등에서 사용자가 검색할 **검색 조건(타입)**을 선택하고 검색어를 입력할 수 있는 영역을 만듭니다.
| 코드 | 역할 |
|---|---|
<div class="search_area"> |
검색 관련 요소들을 감싸는 영역(CSS 스타일링을 위한 클래스 search_area 지정). |
<select id="searchType" name="searchType"> |
검색 타입을 선택할 수 있는 **콤보박스 (드롭다운)**를 만듭니다. 서버로 전송될 때 searchType이라는 이름으로 값이 전달됩니다. |
<input type="text" id="searchKeyword" name="searchKeyword" value="${searchKeyword }" placeholder="검색어를 입력하세요"> |
사용자가 검색어를 직접 입력하는 텍스트 입력 필드입니다. searchKeyword라는 이름으로 값이 전달됩니다. |
<a href="#this" class="btn_search" id="searchBtn">조회</a> |
검색을 실행하기 위한 **버튼(링크)**입니다. JavaScript를 이용해 searchBtn ID로 이 버튼을 클릭했을 때 검색 기능을 호출하게 됩니다. |
value="${searchKeyword }": 이 코드는 서버에서 다시 페이지로 전달받은 이전 검색어를 입력 필드에 자동으로 채워 넣는 역할을 합니다. (사용자가 검색 후 다시 페이지를 볼 때 검색어가 유지되도록 함)<c:if>를 이용한 selected 설정 (JSTL)콤보박스 내부의 각 <option> 태그에 있는 <c:if> 태그는 사용자가 이전에 선택했던 검색 타입을 기억하고 해당 옵션이 미리 선택된 상태로 화면에 표시되도록 합니다.
<option value="TITLE" <c:if test="${searchType eq 'TITLE'}">selected</c:if>>제목</option>
searchType 변수의 값이 'TITLE'과 같다면, <option> 태그 안에 **selected*라는 속성을 출력합니다.selected 속성이 붙은 <option>이 브라우저에서 기본적으로 선택되어 표시됩니다.eq란 무엇인가요?eq는 Expression Language (EL) 또는 JSTL에서 사용되는 연산자로, **"같다" (Equal)**라는 뜻을 가진 논리 연산자입니다.
${searchType eq 'TITLE'}searchType.equals("TITLE") 또는 searchType == "TITLE"와 동일한 비교 기능을 수행합니다.JSTL이나 EL에서는 XML 문법과 충돌할 수 있는 <, > 등의 기호 대신 약어를 사용합니다.
| 약어 | 전체 의미 | 기능 |
|---|---|---|
eq |
Equal | 같다 (== 또는 .equals()와 동일) |
ne |
Not Equal | 같지 않다 (!=) |
lt |
Less Than | 작다 (<) |
le |
Less Than or Equal | 작거나 같다 (<=) |
gt |
Greater Than | 크다 (>) |
ge |
Greater Than or Equal | 크거나 같다 (>=) |