본문 바로가기

JAVA SPRING

JSTL

 

■ 표현 언어(EL) : 자바 코드가 들어가는 표현식을 편리하게 사용하기 위해 JSP 2.0부터 도입된 데이터 출력 기능.

ㄴ JSP  페이지에서 표현 언어를 사용하려면, 디렉티브 태그 속성인 isELignored를 반드시 false로 설정해야 한다.

ㄴ 형식 : ${표현식 or 값}


■ JSTL(JSP Standard Tag Libiary) : 커스텀태그 중 가장 많이 사용되는 태그를 표준화하여 라이브러리로 제공하는 것.

ㄴ JSP2.0 규약부터 추가된 기능이므로 현재 톰캣에서는 기본으로 제공되지 않는다.

http://tomcat.apache.org/download-taglibs.cgi 에서 4개의 jar 파일을 다운로드 하여, 프로젝트의 lib 폴더에 붙여넣으면 JSTL을 사용하는 데 필요한 라이브러리의 설정이 끝난다.

 

 


■ Core 태그 라이브러리

ㄴ Core 라이브러리 : 변수 선언, 조건식, 반복문 기능 등을 태그로 대체해서 사용한다.  단, jsp 페이지 상단에 taglib 디렉티브 태그 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 를 선언해서 톰캣에게 알려주어야 한다. 

 


본격적인 실습 ! 

 

1. 로그인 예제

 

내용 : login.jsp로 간단한 로그인 페이지를 만들고, result.jsp에서 id를 입력하지 않은 경우 <c:if> 태그를 이용해 아이디가 입력되지 않은 경우 '아이디를 입력하세요.' 라는 안내 문구가 뜨도록 만든다.

 

 

 

' The superclass javax.servlet.http.httpservlet was not found on the java build path ' 라는 오류는 이클립스에 서버가 설치되지 않았을 경우에 뜨는 오류이다. 간단하게 Properties의 Project Facets 에서 Java 클릭 후, 사용중인 톰캣을 등록해주면 해결된다. 

 

 

말끔하게 해결되었다.

 

아이디를 입력하지 않으면 

아이디를 입력하세요 라는 안내문구와 함께 로그인창으로 이동하는 a href 링크 창이 뜨고,

아이디를 똑바로 입력하면 

환영문구가 나온다.

 

 

 

result.jsp 코드를 약간 수정해서 ID가 admin일 경우 관리자 안내 문구를 띄운다.

 


2. 학점 변환기 예제

 

 

<c:choose>

<c:when test="조건식"> 본문내용 </c:when> 을 통한 switch문의 기능 수행

 

 

학점에 따라 A, B, C, F학점이 나오도록 만든다. 스샷에는 복붙이 수정되지 않은 상태지만.. 

문제없이 해결! 

참고로 가끔 서버에 톰캣을 연결해서 실행시키면 

Several ports (8005, 8080, 8009) required by Tomcat vN.0 Server at localhost are already in use.

..같은 내용의 오류가 뜰 때가 있는데, 가장 중요한 부분은 ' localhost are already in use ' 이다..  이미 포트를 사용중이기 때문에 생기는 오류라는 뜻.

cmd를 관리자모드로 실행해서 netstat -a -n -o -p tcp 를 입력하고, 포트를 사용하고 있는 pid를 확인한 다음 

taskkill /f /pid 피드번호  를 입력해주면 쉽게 해결된다. 은근 자주 만나는 오류..

 

 


3. 구구단 예제

 

 <c:forEach var="변수이름" items="반복할 객체 이름" begin="시작값" end="마지막값" step="증가값" varStatus="반복 상태 변수 이름">

</c:forEach>

 

를 통한 반복문 수행 연습.

 

 

html코드를 이용해 단수를 입력할 jsp 페이지와, 계산 결과를 출력할 페이지를 만드는데.. 아래와 같은 경고가 뜬다. 쉽게말해 HTML5 문서에서는 지원을 하지 않는 태그라는 뜻. table 속성 태그들을 지원하지 않는단 의미이다.  

 

 

 

 

7단을 입력하면 <td> 와 <tr> 로 만들어진 표가 출력된다.