안녕하세요!!!
오늘은 데이터베이스에서 뽑은 데이터안에 특정 문자를 기준으로 데이터를 뽑는 방법을 정리해보겠습니다.
JSTL에서의 함수중에 split이란 함수를 사용할겁니다! (split이란 단어 뜻대로 나뉘는 기능을 합니다)
제가 뽑고 싶은 데이터는 아래 화면에 있는 sr_eq_value란 컬럼 안에 있는 데이터입니다.
두 단어가 콤마(,) 사이를 두고 나눠져 있습니다..
그래서 저는 콤마를 기준으로 데이터를 하나하나 뽑아보겠습니다!!
우선 HTML 가장 상단에 JSTL 함수선언을 합니다!
1
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
cs |
일단 저의 코드를 소개해드리겠습니다.
저 같은 경우는, 숫자가 0으로 표시된 곳에 sr_eq_value의 값을 순차대로 적용하려 합니다.
(split에 응용된 코드니 그냥 참고만 하시면 됩니다... split 함수 설명은 아래서 하겠습니다.)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<c:set var="key" value="1" />
<c:forEach var="result" items="${excelResult}" varStatus="status">
<c:choose>
<c:when test="${result.number eq '0'}">
<td>
<c:set var="text" value="${fn:split(result.sr_eq_value,',')}" />
<c:forEach var="textValue" items="${text}" varStatus="varStatus">
<c:if test="${varStatus.count eq key }">
${textValue}
</c:if>
</c:forEach>
</td>
<c:set var="key" value="${key + 1}" />
</c:when>
<c:otherwise>
<td>${result.number}</td>
</c:otherwise>
</c:choose>
</c:forEach>
|
cs |
split 함수 설명
split함수의 사용법은 fn:split(A,B)이며 A와 B에서 지정한 문자열로 나누어 배열로 반환합니다.
여기서 중요한건 배열로 반환되는 것인데,
예를들어 sr_eq_value의 데이터 값(2021,굿프로그램) 을 콤마(,)을 기준으로 split하면,
1번 값에 '2021'가 들어가 있고, 2번 값에 '굿프로그램' 이 들어가게 됩니다.
그래서 번호에 따라 뽑아서 사용하면 됩니다!
split 실전 코드 설명
가장 윗편에 c:set을 하여 key값을 선언하고 값을 1을 넣어줍니다.
이 이유는 split으로 문자열 배열로 반환이 되면 순차적으로 뽑아 사용할 예정이기 때문입니다.
<c:when test="${result.number eq '0'}"> (만약에 숫자가 0인 값이 있다면)
c:set을 통해서 사용할 값을 text로 해주고 value에 fn함수인 split을 사용합니다.
첫번째 칸에는 뽑고자 하는 컬럼인 sr_eq_value를 넣고,
두번째 칸에는 구분할 특정 문자(콤마)를 넣어줍니다.
그리고 배열형식이기 때문에 c:forEach 반복을 통해 데이터를 꺼내면서 (사용값은 textValue입니다.)
varStatus속성에서 count(1부터 시작)를 이용하여 값을 뽑아내줍니다.
여기서 기존 key값인 1과 count를 매칭시키고,
반복문 끝에 key값에 +1을 통해 데이터가 순차적으로 나올 수 있도록 설정해줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<c:set var="key" value="1" />
<c:forEach var="result" items="${excelResult}" varStatus="status">
<c:choose>
<c:when test="${result.number eq '0'}">
<td>
<c:set var="text" value="${fn:split(result.sr_eq_value,',')}" />
<c:forEach var="textValue" items="${text}" varStatus="varStatus">
<c:if test="${varStatus.count eq key }">
${textValue}
</c:if>
</c:forEach>
</td>
<c:set var="key" value="${key + 1}" />
</c:when>
|
cs |
또 하나의 방법!
간편하게 처리하는 방법은 아래와 같은 형식으로 숫자를 지정해주면 숫자에 맞는 값이 추출됩니다.
${fn:split(result.sr_eq_value,',')[0]} - '2021'
${fn:split(result.sr_eq_value,',')[1]} - '굿프로그램'
이런식으로 말이죠
'JAVASCRIPT & JQUERY' 카테고리의 다른 글
[HTML&JQUERY&Java] 태그 추가 삭제 및 다중insert 기능!! (영상 有) (0) | 2021.10.20 |
---|---|
[Jquery] 입력 그룹 값 계산 및 테이블 생성 방법!! (영상 有) (0) | 2021.10.12 |
[Javascript] SNS 공유 방법!! (카카오톡,페북,트윗,밴드) (0) | 2021.08.13 |
[JQuery] 쿠키로 아이디 저장하는 방법!! (3) | 2021.08.07 |
[Jquery] 마우스 hover 시, 확대 기능 방법!! (0) | 2021.04.26 |
댓글