본문 바로가기
CLASS/SPRING,JSTL

#6-7 / JSTL - SPA 검색 기능 사용법

by hingu 2024. 7. 15.
⚡ 반복문 + 조건문 , 전역변수로 값 체크
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="cr" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%
String search= request.getParameter("search");
String data[] = {"삼겹살","등심","안심","갈매기","목살","안창살"};
%>
<cr:set var="search" value="<%=search%>"  />

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL로 SPA 검색기능 사용법</title>
</head>
<body>

<form id="frm" method="post" action="./jstl_search.jsp" onsubmit="return spa_form()">
	검색어 : <input type="text" name="search" value="${search}">
	<input type="submit" value="검색">
</form>

<br>

<p>[ ${search} ] 검색결과</p>

<ul>
	<!-- indexOf를 이용하여 검색된 값과 배열의 적용된 단어를 검토하여 출력하는 형태 - 요렇게 해두댐 -->
	<!-- <cr:forEach var="ck" items="<%=data %>">
		<cr:if test="${fn:indexOf(ck,search)!=-1}">
			${ck}
		</cr:if>
	</cr:forEach> -->
	
	<cr:set var="check" value="N"/>
	
	<cr:forEach var="dt" items="<%=data %>">
		<cr:choose>
			<cr:when test="${search == dt && search != ''}">
				<li>${dt}</li>
				<cr:set var="check" value="Y"/>
			</cr:when>
			<cr:when test="${search == ''}">
				<li>${dt}</li>
				<cr:set var="check" value=""/>
			</cr:when>
		</cr:choose>
	</cr:forEach>
	
	<cr:if test="${check=='N'}">
		<li>해당 메뉴는 없는 데이터입니다.</li>
	</cr:if>
	
</ul>

</body>

<script>
function spa_form(){
	frm.submit();
}
</script>

</html>

 

리스트에 검색값이 있을 경우
리스트에 검색값이 없을 경우