변수지원태그를 프로퍼티나 맵을 처리할 수 있습니다. 우리가 자바를 공부할 때 객체 프로퍼티라는 것은 객체의 값을 변경하거나 값을 읽어드리기 위한 getter, setter 메서드를 생각하면 됩니다. 무슨 말이냐면 위의 코드를 잠깐 보겠습니다. <c:set target="${some}" property="propertyName" value="anyValue" /> 라는 코드를 동작시키면 실제로 some 객체의 setter 메서드를 방금 지정한 value 로 실행시킵니다. 즉 some.setPropertyName(anyvalue) 가 실행된다는 의미입니다. some 객체가 맵(map)일 경우에는 some.put(propertyName, anyValue) 가 실행됩니다.
JSTL 흐름제어 태그 : if
자바의 if 와는 다르게 else 에 대한 처리는 없습니다. 사용하는 문법은 다음과 같습니다. if 의 조건이 true 라면 코드가 실행됩니다. 예제를 볼까요? 이처럼 조건이 만족할 때만 실행이 되는 코드입니다.
JSTL 흐름제어 태그 : if 실습
JSTL 을 사용하기 위해서 JSP 파일에서 지시자를 우선 설정해줍니다. 그 다음에는 값을 변수에 저장해보겠습니다. JSP 에서 scope 변수에 값을 저장하는 방법으로 우리는 2가지를 배웠습니다. jsp 그대로 저장하는 방법과 jstl 을 활용하여 저장하는 방법이 있었습니다. 둘 다 같은 코드이기 때문에 우선 jsp 로 생성하는 것을 comment 처리 하겠습니다. (ctrl shift / 사용하면 됩니다). 여기서 잠깐 위의 코드를 그대로 실행 시키면 다음과 같은 에러 창이 발생된다. 8행 38열에 인용부호가 요구된다는 것을 친절하게도 알려주는데, 코드로 돌아가서 살펴보았다. value 에 숫자 10이어서 쌍따옴표가 필요 없을거라고 생각했었는데, 사실은 필요하다. 이 jsp 파일의 contentType 을 text/html 이라고 명시했기 때문이다. 이번에는 if 문과 방금 저장한 변수를 활용하여 출력하는 간단한 코드를 하나 작성했습니다. java 의 if 문과는 다르게 else 처리가 없기 때문에 위와 같이 if 문을 여러 번 작성해야 합니다. 실행을 시켜보겠습니다. n 이 현재 10 이기 때문에 우리가 생각한대로 화면이 출력되는 것을 확인할 수 있습니다.
JSTL 흐름제어 태그 : choose & 실습
흐름제어 태그 중에는 choose 라는 구문이 있습니다. 문법을 먼저 보겠습니다. choose 는 자바의 if-else 구문과 비슷합니다. 왜냐하면 조건이 여러개 나올 수 있기 때문에 그렇습니다. 주어진 조건들이 모두 만족하지 않을 때 otherwise 구문이 실행됩니다. 실습을 진행해보겠습니다. JSTL 을 사용하기 위해서 지시자를 제일 위에 생성해주었구요. 그 다음으로는 request scope 변수 score 를 초기화했습니다. 본문에서는 choose 구문을 사용하여 작성하였습니다. 값을 출력 시켜 보면 우리가 예상한대로 잘 출력되고 있는 것을 확인할 수 있습니다.