'2020'에 해당되는 글 497건

반응형

  <c:choose> 태그는 JSP페이지에서 switch문의 기능을 수행하며, 사용형식은 다음과 같습니다.

 

<c:choose>

   <c:when test="조건식1" > 본문내용1 </c:when>

   <c:when test="조건식2" > 본문내용2 </c:when>

   ...

   <c:otherwise>본문내용</c:otherwise>

</c:choose>

  첫 번째 <c:when>태그의 조건식 1을 체크해서 참이면 본문내용1을 수행하고 만약 거짓이면 다음 <c:when>의 조건식2 를 체크해서 참이면 본문내용2를 수행합니다. 모든 조건이 거짓이면 <c:otherwise>태그의 본문 내용을 수행합니다.

 

  <c:choose> 태그를 이용해 name 값의 유무에 따라 다른 결과를 표시합니다. 만약 name값이 정상적이면 회원 정보를 출력하고 name이 null이거나 빈 문자열이면 오류 메시지를 출력합니다.

 

<c:set var="name" > 이 문장을 주석처리하고 실행했을 경우

github: github.com/soulwine-it 에 들어가시면 소스를 보실 수 있습니다.

참고자료 : 자바웹을 다루는 기술

 

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

<c:url> tag  (0) 2019.12.24
<c:forEach> tag  (0) 2019.12.24
JSTL <c:if> tag  (0) 2019.12.20
JSTL <c:remove> TAG  (0) 2019.12.20
<c:set> tag  (0) 2019.12.20
블로그 이미지

꽃꽂이하는개발자

,

JSTL <c:if> tag

2020/JSP SERVLET 2019. 12. 20. 21:00
반응형

  <c:if> 태그는 이름에서도 알 수 있듯이 JSP페이지에서 조건문을 대체해 사용하는 태그이며, 사용 형식은 다음과 같습니다.
<c:if test="${조건식}" var="변수이름" [scope="scope 속성 중 하나"] /

...

</ci:if>

  여기서 test는 표현 언어를 이용해 수행할 조건식 위치를, var은 조건식의 결과값을 저장합니다. 또한 scope는 변수의 스코프를 지정(page,request, session, appliation 중 하나)합니다.

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

<c:forEach> tag  (0) 2019.12.24
JSTL <c:choose> tag  (0) 2019.12.20
JSTL <c:remove> TAG  (0) 2019.12.20
<c:set> tag  (0) 2019.12.20
JSTL Core taglib  (0) 2019.12.20
블로그 이미지

꽃꽂이하는개발자

,
반응형

  JSP페이지에서 변수를 선언했으면 <c:remove>태그를 이용해 변수를 제거할 수도 있습니다. <c:remove>태그를 이용해 보겠습니다.

<c:rmove var="변수이름" [scope="scope 속성 중 하나"] />

  여기서 var은 제거할 변수 이름, scope는 변수범위를 지정합니다.(page, request, session, application)

  member3.jsp를 작성해 보겠씁니다.

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

JSTL <c:choose> tag  (0) 2019.12.20
JSTL <c:if> tag  (0) 2019.12.20
<c:set> tag  (0) 2019.12.20
JSTL Core taglib  (0) 2019.12.20
JSTL(JSP Standard Tag Library)  (0) 2019.12.20
블로그 이미지

꽃꽂이하는개발자

,

<c:set> tag

2020/JSP SERVLET 2019. 12. 20. 18:20
반응형

  JSP에서 변수를 사용하려면 자바 코드에서 선언합니다. 그러나 <c:set> 태그를 이용하면 변수를 대체할 수 있습니다.

<c:set var="변수명" value="변수값" [scope="scope 속성 중 하나"] />

  여기서 var는 변수 이름을, value는 변수에 저장할 값을, scope는 변수 스코프를 지정합니다(page, request, session, application 중 하나)

  이제 코딩을 하고 출력해 보겠습니다.

  먼저 member1.jsp를 작성하겠습니다.

  상단에 taglib 디렉티브 태그를 선언하고 <c:set>태그를 이용해 회원 정보를 저장하는 변수를 선언한 후 값을 초기화합니다. 이때<c:set> 태그의 value 속성은 표현 언어로 값을 설정할 수 있습니다. 그리고 표현 언어에서 변수 이름을 사용해 값을 출력합니다.

  이번에는 <c:set> 채그를 이용해 너무 길어서 사용하기 불편한 변수나 속성 이름을 간결하게 만들어 보겠습니다. 먼저 JSP에서 <a>태그를 이용해 다른 페이지로 이동하는 방법입니다. 지금까지는 표현 언어로 pageContext.request.contextPath 같은 긴 속성을 그대로 사용했는데, <c:set> 태그를 이용하면 긴 이름의 속성이나 변수를 줄여서 사용할 수 있습니다.

 

<a href="${pageContext.request.contextPath}/memberForm.jsp">회원 가입하기</a>

 

  로그인창에서 회원 가입창으로 이동할 때 미리 <c:set>태그를 이용해 pageContext.request.contextPath 속성 이름을 contextPath로 줄여서 사용하고 있습니다. 복잡한 웹 페이지에서 속성 이름을 짧게 줄이면 코드의 가독성이 좋아집니다.

 

 

 

  이번에는 <c:set>태그를 이용해 바인딩된 속성 이름이 긴 경우 더 짧은 변수로 대체해서 사용하는 방법을 알아보겠습니다. 속성 이름이 길면 사용하기가 불편하고 가독성도 떨어집니다. 그래서 미리 <c:set>태그를 이용해 사용하기 편리한 이름인 memberList로 설정한 후 인덱스를 이용해 회원 정보를 출력했습니다.

 

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

JSTL <c:if> tag  (0) 2019.12.20
JSTL <c:remove> TAG  (0) 2019.12.20
JSTL Core taglib  (0) 2019.12.20
JSTL(JSP Standard Tag Library)  (0) 2019.12.20
EL SCOPE 우선순위  (0) 2019.12.20
블로그 이미지

꽃꽂이하는개발자

,

JSTL Core taglib

2020/JSP SERVLET 2019. 12. 20. 15:40
반응형

  이번 글에서는 기본 기능을 제공하는 코어 라이브러리를 사용해 보겠습니다. 아직 JSP에서는 변수 선언, 조건식, 반복문 기능은 자바 코드를 이용해서 구현하겠습니다. 코어 라이브러리를 사용하면 이런 자바 기능을 태그로 대체할 수 있습니다. 톰캣에서는 JSTL 라이브러리를 기본으로 제공하지 않고 외부 라이브러리에서 가져와 기능을 수행할 수 있습니다.

  따라서 자바의 import문처럼 코어 태그 라이브러리를 사용하려면 반드시 JSP 페이지 상단에 다음과 가이 taglib 디렉티브 태그를 추가해서 톰캣에 알려 주어야 합니다. 만약 선언하지 않으면 JSP 실행 시 오류가 발생합니다.

 

<%@ taglib prefic="c" uri="http://java.sun.com/jsp/jstl/core" %>

 

Core 태그 라이브러리의 기능

기능 태그 설명
변수 지원 <c:set> JSP 페이지에서 변수를 지정
<c:remove> 지정된 변수를 제거
흐름 제어 <c:if> 조건문을 사용
<c:choose>

switch문을 사용

<c:when>문과 <c:otherwise> 서브태그

<c:forEach> 반복문 사용
<c:forTokens> 구분자로 분리된 각각의 토근을 처리할 때 사용
URL 처리 <c:import> URL을 이용해 다른 자원을 JSP 페이지에 추가
<c:redirect> response.sendRedirect() 기능 수행
<c:url> 요청 매개변수로부터 URL생성
기타 태그 <c:catch> 예외 처리
<c:out> JspWriter에 내용을 처리한 후 출력

 

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

JSTL <c:remove> TAG  (0) 2019.12.20
<c:set> tag  (0) 2019.12.20
JSTL(JSP Standard Tag Library)  (0) 2019.12.20
EL SCOPE 우선순위  (0) 2019.12.20
표현 언어(EL)로 바인딩 속성 출력  (0) 2019.12.19
블로그 이미지

꽃꽂이하는개발자

,
반응형

  JSTL이란 커스텀 태그 중 가장 많이 사용되는 태그를 표준화하여 라이브러리로 제공하는 것을 말합니다. JSTL에서는 여러 가지 태그를 지원하는데, 표로 정리해 보겠습니다.

라이브러리 세부 기능 접두어  관련 URI
코어 변수 지원, 흐름 제어, 반복문 처리, URL처리 c http://java.sun.com/jsp/jstl/core
국제화 지역, 메시지 형식, 숫자 및 날짜 형식 fmt http://java.sun.com/jsp/jstl/fmt
XML XML 코어, 흐름제어, XML변환 sql http://java.sun.com/jsp/jstl/.sql
데이터베이스 SQL sql http://java.sun.com/jsp/jstl/sql
함수 컬렉션 처리, 문자열 처리 fn http://java.sun.com/jsp/jstl/functions

  JSTL은 JSP 2.0 규약부터 추가된 기능이므로 현재는 톰캣에서 기본으로 제공되지 않습니다. 따라서 다음 사이트에서 라이브러리를 다운로드해 설치해야 합니다.

 

  우선 http://tomcat.apache.org/download-taglibs.cgi 에 접속하신 후 4개의 jar 파일을 다운로드 해주세요.

4개의 파일을 다운받으신 후 프로젝트의 lib에 복사해서 붙여 넣겠습니다.

이렇게 해서 JSTL을 사용하는 데 필요한 라이브러리를 설정했으니 이제는 JSP에서 직접 JSTL의 기능을 사용해 보겠습니다.

-다음 글에서..-

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

<c:set> tag  (0) 2019.12.20
JSTL Core taglib  (0) 2019.12.20
EL SCOPE 우선순위  (0) 2019.12.20
표현 언어(EL)로 바인딩 속성 출력  (0) 2019.12.19
has-a 관계 빈  (0) 2019.12.19
블로그 이미지

꽃꽂이하는개발자

,
반응형

   request, session, application 내장 객체에서는 데이터를 바인딩해서 다른 JSP로 전달합니다.

  그런데 각 내장 객체에 바인딩하는 속성 이름이 같은 경우 JSP에서는 각 내장 객체에 지정된 출력 우선순위에 따라 순서대로 속성에 접근합니다. 이번에는 각 내장객체에 같은 속성 이름으로 바인딩할 때의 출력 우선순위를 알아보겠습니다.

  test02 폴더에 forward4.jsp파일과 member4.jsp 파일을 만든 후 확인해 보도록 하겠습니다.

왼쪽이 forward4.jsp 오른쪽이 member4.jsp 입니다.

이번에는 forward4.jsp에서 request에 address를 바인딩하는 부분을 주석처리 해 보겠습니다.

다시 회원 가입창에서 가입하기를 클릭하면 다음과 같이 session에서 바인딩한 주소가 출력 되는 것을 확인할 수 있습니다.

  표현 언에서는 동일한 속성 이름에 접근할 경우 page 객체의 속성이 우선순위가 가장 높습니다.

  표현 언어에서 같은 속성에 대한 우선순위는 다음과 같습니다.

page> request > session > application

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

JSTL Core taglib  (0) 2019.12.20
JSTL(JSP Standard Tag Library)  (0) 2019.12.20
표현 언어(EL)로 바인딩 속성 출력  (0) 2019.12.19
has-a 관계 빈  (0) 2019.12.19
JSP EL HashMap  (0) 2019.12.19
블로그 이미지

꽃꽂이하는개발자

,
반응형

  request, session, application 내장 객체에 속성을 바인딩한 후 다른 서블릿이나 JSP에 전달할 수 있습니다. 표현 언어를 사용하면 자바 코드를 사용하지 않고 바인딩된 속성 이름으로 바로 값을 출력할 수 있습니다.

  우선 새로운 패키지(test02폴더)에 forward1.jsp 파일과 member1.jsp 파일을 만들어 주도록 하겠습니다.

 

forward1.jsp
member1.jsp

  첫번째 회원정보는 getAttribute() 메서드를 이용해 출력하고, 두 번째 회원 정보는 표현 언어에서 속성 이름으로 바로 출력합니다.

 

이번에는 request에 회원 정보를 저장한 MemberBean 객체를 바인딩한 후 다시 출력해 보겠습니다.

  forward2.jsp에서 MemberBean 객체를 생성하고 속성에 회원 정보를 설정합니다. 그리고 request 내장 객체에 속성 이름 member로 MemberBean 객체를 바인딩한 후 member2.jsp로 포워딩 합니다.

  member2.jsp에서는 request 내장 객체에 속성 이름 member로 접근한 후 MemberBean 속성 값을 출력합니다.

 

 

세번째로 request에 회원 정보를 저장한 ArrayList를 바인딩하고 다시 출력해 보겠습니다.

 

  forward3.jsp에서 다음과 같이 ArrayList 객체를 생성하고 MemberBean 객체를 저장합니다. 그리고 request 내장 객체에 ArrayList 객체를 다시 memberList 속성 이름으로 바인딩한 후 두 번째 JSP로 포워딩 합니다.

  바인딩 시 속성 이름 membersList로 바로 ArrayList 객체에 접근합니다. 그런 다음 저장 순서인 인덱스를 이용해 각각의 MemberBean에 접근한 후 속성 이름으로 회원 정보를 출력합니다.

github: github.com/soulwine-it

자료 출처: 자바 웹을 다루는 기술

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

JSTL(JSP Standard Tag Library)  (0) 2019.12.20
EL SCOPE 우선순위  (0) 2019.12.20
has-a 관계 빈  (0) 2019.12.19
JSP EL HashMap  (0) 2019.12.19
EL Collection 객체 사용  (0) 2019.12.18
블로그 이미지

꽃꽂이하는개발자

,