독서하는 개발자's Blog

반응형

[JSP] c:if 로 값비교하기(JSTL, EL) - 손쉽게 코딩하기

우리는 보통 JSTL안에서 EL태그를 사용할때


<c:if test="${value}"> ~~~~~~ 값들어가는 부분</c:if>


이런 식으로 사용을 합니다.


근데 간혹가다

select 태그안에서 선택한 option이 보여지게 하려면 어떻게 할까요.

( 보통 select 옵션 값을 선택하고 submit을 하게 되면 웹은 reload가 되면서 맨 처음 option으로 바뀌게 됩니다. )


ex) 년도로 따져봅시다.


1
2
3
4
5
6
7
8
9
10
11
<select name="reqyyyy" id="year">
                        <option value="">년도</option>
                        <option value="2019"
                            <c:if test="${check_y}">selected</c:if>>2019</option>
                        <option value="2018"
                            <c:if test="${check_y}">selected</c:if>>2018</option>
                        <option value="2017"
                            <c:if test="${check_y">selected</c:if>>2017</option>
                        <option value="2016"
                            <c:if test="${check_y}">selected</c:if>>2016</option>
</select>
cs


이런 select태그가 있다고 하죠.

우리는 첫번째는 년도, 두번째는 2019, 세번째는 2018이고

두번째 2019를 클릭하고 submit을 하면 reload가 되기때문에 화면에는 첫번째 년도가 보여지게됩니다.


근데 우리는 클릭한 2019가 화면에 보여지고 싶어요


그럼 조건을 줘야합니다.


1
2
3
4
5
6
7
8
9
10
11
<select name="reqyyyy" id="year">
                        <option value="">년도</option>
                        <option value="2019"
                            <c:if test="${check_y == 2019}">selected</c:if>>2019</option>
                        <option value="2018"
                            <c:if test="${check_y == 2018}">selected</c:if>>2018</option>
                        <option value="2017"
                            <c:if test="${check_y == 2017}">selected</c:if>>2017</option>
                        <option value="2016"
                            <c:if test="${check_y == 2016}">selected</c:if>>2016</option>
</select>
cs

EL태그 안에서 값비교를 해야 정상적인 동작을 하게 됩니다.


1
2
3
4
5
6
7
8
9
10
11
<select name="reqyyyy" id="year">
                        <option value="">년도</option>
                        <option value="2019"
                            <c:if test="${check_y} == 2019">selected</c:if>>2019</option>
                        <option value="2018"
                            <c:if test="${check_y} == 2018">selected</c:if>>2018</option>
                        <option value="2017"
                            <c:if test="${check_y} == 2017">selected</c:if>>2017</option>
                        <option value="2016"
                            <c:if test="${check_y} == 2016">selected</c:if>>2016</option>
</select>
cs

우리는 보통 위와 같이 EL태그에서 비교하지않고 JSTL태그에서 값을 비교하게 되죠.

그럼 당연히 동작하지 않습니다.


이와 같은 실수는 반복하지 않아야합니다.


도움이 되셧다면 공감과 광고 한번씩 눌러주시면 감사합니다

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band