공부/JSF2014. 10. 4. 02:33


본격적인 JavaServer Faces 어플리케이션 예제를 해보기에 앞서 아래와 같은 기본적인 준비가 필요합니다. JavaServer Faces 는 API 와 Implementation 이 별도로 존재 하며 Implementation 은 몇가지 서드 파티 라이브러리가 존재 합니다. 그중 앞으로 진행될 예제에서는 서드파티 구현체 이며 대부분 익숙하실지도 모를 jQuery UI 를 이용한 Primefaces 라이브러리를 이용할 예정입니다. 그럼 본격적으로 준비 사항을 체크 해보겠습니다.

준비사항

가장 먼저 아래의 파일들을 내려받아 주세요.

모든 파일들을 내려 받았으면 다음 설명에 따라 설치 및 압축 해제를 해주세요

  • 시스템에 Java SDK 버전 6 이상을 Oracle 홈페이지에서 내려받아 설치 합니다.
    • JAVA_HOME 설정은 구지 할 필요는 없으나 필요하면 시스템 환경설정에서 JAVA_HOME 을 설정하세요.
  • 이클립스를 홈페이지에서 내려받은 후 적당한 곳에 압축을 풀고 실행 시켜 주세요.
    • 이클립스의 버전은 Tomcat 6 및 Java 6 만 지원한다면 어떤 버전이든 상관없습니다.
  • Tomcat 웹서버를 홈페이지에서 내려받은 후 적당한 곳에 압축만 풀어주세요.
    • Tomcat 버전은 6 이상으로 내려 받아 주세요 (5 이하 버전은 JSF 2.2 지원을 하지 않습니다)
  • JSF 2.2 API 를 위 다운로드 링크를 통해 내려 받습니다.
    • 여러 목록 중 javax.faces-api-2.2.jar 이름으로 되어있는것을 내려 받으시면 됩니다.
  • JSF 2.2 Impl 을 위 다운로드 링크를 통해 내려 받습니다.
    • 여러 목록 중 javax.faces-2.2.8.jar 을 내려 받으면 됩니다.
    • 나중에 다른 서드파티의 구현체로 바꾸려면 Impl 라이브러리만 교체 하면 됩니다.
    • Primefaces, Richfaces, MyFaces, IceFaces, OmniFaces 등등
  • JSTL 1.2 API 를 위 다운로드 링크를 통해 내려 받습니다.
    • JSF 태그를 사용하기 위해 필요합니다.
    • 여러 목록 중 javax.servlet.jsp.jstl-api-1.2.1.jar 을 내려 받습니다.
  • JSTL 1.2 Impl 을 위 다운로드 링크를 통해 내려 받습니다.
    • 여러 목록 중 javax.servlet.jsp.jstl-1.2.1.jar 을 내려 받습니다.
  • Primefaces 5.0 을 위 다운로드 링크를 통해 내려 받습니다.
    • 다운로드 사이트에 가면 여러가지 버전이 있는데 그중에 Community Downloads 에서 5.0 을 선택해서 내려 받습니다.

이렇게해서 기본적인 JavaServer Faces 어플리케이션을 개발하기 위한 준비가 끝났습니다. 다음 블로그 글에서 초간단 JavaServer Faces 어플리케이션 Hello World 예제를 해보겠습니다.

'공부 > JSF' 카테고리의 다른 글

JSF 라이프 사이클 개요  (0) 2014.10.05
JSF 어플리케이션 Hello World 예제  (0) 2014.10.04
Facelets 란 무엇인가?  (0) 2014.10.02
JavaServer Faces 버전 히스토리  (0) 2014.10.02
Facelets 소개  (0) 2014.10.02
Posted by #HanaLee
공부/JSF2014. 10. 2. 08:50

Facelets 란 무엇인가?

Facelets 은 강력하지만 가벼운 페이지 선언 언어(page declaration language) 이며 HTML 스타일의 템플릿을 이용하여 JavaServer Faces 뷰들과 컴포넌트 트리들을 구축하는데 사용됩니다.
Facelets 의 기능들은 다음을 포함하고 있습니다.

  • 웹 페이지들을 만들기 위해 XHTML 을 사용합니다.
  • JavaServer Faces 에 Facelets 태그 라이브러리와 추가로 JSTL 태그 라이브러리를 지원 합니다.
  • EL 표현식을 지원합니다.
  • 페이지들과 컴포넌트를 위한 템플릿을 지원합니다.

규모가 큰 프로젝트를 개발할때 Facelets 을 사용하면 다음과 같은 장점이 있습니다.

  • 템플릿을 이용한 코드 재사용, 복합 컴포넌트(composite components)의 지원
  • 사용자 정의를 통해 다른 컴포넌트와 서버측(server-side) 객체의 기능 확장
  • 높은 생산성
  • 컴파일 타임에 EL 표현식의 검증(validation)
  • 성능이 좋은 랜더링

요컨대, Facelets 을 사용하면 개발 및 배포에 걸리는 시간과 노력을 줄여 줍니다.
Facelets 뷰들은 일반적으로 XHTML 페이지로 작성 됩니다. JavaServer Faces 구현은 http://www.w3.org/TR/xhtml1/#a_dtd_XHTML-1.0-Transitional 리스트에 있는 XHTML Transitional 문서 타입 정의 (DTD) 를 지원하는 XHTML 페이지를 만드는것을 지원합니다. 규약에 따라 XHTML 로 만들어지는 웹 페이지는 .xhtml 확장자를 가집니다.
JavaServer Faces 기술은 웹 페이지에 컴포넌트를 추가 하기 위해 각종 태그 라이브러리들을 지원합니다. Facelets 은 JavaServer Faces 태그 라이브러리 매커니즘을 지원하기 위해 XML 네임스페이스 선언을 사용합니다. 아래는 Facelets 가 지원하는 태그 라이브러리들의 목록입니다.

Tag Library URI Prefix Example Contents
JavaServer Faces Facelets Tag Library http://java.sun.com/jsf/facelets ui: ui:example
ui:insert
템플릿 태그
JavaServer Faces HTML Tag Library http://java.sun.com/jsf/html h: h:head
h:body
h:outputText
h:inputText
모든 UIComponent 객체를 위한 JavaServer Faces component 태그들
JavaServer Faces Core Tag Library http://java.sun.com/jsf/core f: f:actionListener
f:attribute
JavaServer Faces 의 커스텀 액션 태그는 특정 랜더킷과 무관합니다
JSTL Core Tag Library http://java.sun.com/jsp/jstl/core c: c:forEach
c:catch
JSTL 핵심 태그
JSTL Functions Tag Library http://java.sun.com/jsp/jstl/functions fn: fn:toUpperCase
fn:toLowerCase
JSTL 기능 태그

추가로 Facelets 는 복합 컴포넌트(composite components) 태그를 지원하며 커스텀하게 태그의 prefix 를 정의 할 수 있습니다. 복합 컴포넌트(composite components) 에 대해 더 알고 싶으면 다음 링크를 통해 확인 할 수 있습니다. composite components
JavaServer Faces 의 EL 표현식을 지원을 기반으로 Facelets 의 속성들과 관리되는 빈(managed beans)의 메소드를 참조 할 수 있는 EL 표현식을 사용합니다. EL 표현식은 컴포넌트 객체, 메소드의 값, 관리되는 빈의 속성을 바인딩 할 수 있습니다. EL 표현식에 대한 더 많은 내용은 다음 링크를 통해 확인 할 수 있습니다. Using the EL to Reference Managed Beans




출처

'공부 > JSF' 카테고리의 다른 글

JSF 어플리케이션 Hello World 예제  (0) 2014.10.04
JavaServer Faces 어플리케이션 개발 준비  (0) 2014.10.04
JavaServer Faces 버전 히스토리  (0) 2014.10.02
Facelets 소개  (0) 2014.10.02
JSF 기술의 이점  (0) 2014.10.02
Posted by #HanaLee
공부/JSF2014. 10. 2. 03:35

JavaServer Faces 버전 히스토리

먼저 Java EE 플랫폼에 포함된 JavaServer Faces 의 버전별 히스토리를 살펴 보겠습니다. 대체로 Java EE 에 포함된 API 들은 Java 의 버전과는 별개로 각각의 API 들과 그 구현체만 있으면 사용 할 수 있습니다.

J2EE 1.4 (2003년)

J2EE 1.4 에 처음으로 JavaServer Faces 1.1 이 포함 되었습니다.

Java EE 5 (2006년)

Java EE 5 에서는 약간의 기능이 개선 된 JavaServer Faces 1.2 가 포함 되었습니다.

Java EE 6 (2009년)

Java EE 6 에서 기능이 대폭 추가 된 JavaServer Faces 2.0 이 포함 되었습니다.

Java EE 7 (2013년)

Java EE 7 에서는 JavaServer Faces 2.2 가 포함 되었습니다.

JavaServer Faces 버전별 주요 기능

  • JSF 1.0 - JavaServer Faces 초기 스펙 발표.
  • JSF 1.1 - 일부의 버그들을 해결하여 발표. 스펙의 변화는 없음.
  • JSF 1.2 - JavaServer Faces 의 핵심 부분과 API들의 많은 개선이 이루어짐. Java EE 5 에 포함됨. Java 엔터프라이즈 에디션으로 채택.
  • JSF 2.0 - 사용의 편리성이 더해지고 향상된 기능과 성능이 개선됨. ajax 기능이 포함됨. Java EE 6 에 포함.
  • JSF 2.1 - JavaServer Faces 2.0 에 대한 유지 보수 2 발표(maintenance release 2). 매우 적은 스펙의 변화들이 생김.
  • JSF 2.2 - 상태를 저장하지 않는 뷰들(stateless views), 페이지 흐름(page flow) 그리고 변경이 가능한 자원(resource) 을 생성 할 수 있는 기능등 새로운 개념을 소개함.

JavaServer Faces 버전별 최소 요구사항

  • JSF1.0 과 1.1 : Servlet 2.4, JSP 2.0 그리고 Java 1.4 필요.
  • JSF1.2 : Servlet 2.4 에서 동작은 하지만 JSP/EL 2.1 을 필요로 하기 때문에 Servlet 2.5 권장. 만약 Facelets 1.x 버전의 뷰 기술을 사용할 경우에는 Servlet 2.4 를 사용가능 합니다. Java 1.5 필요.
  • JSF2.0 : JSF2.0 에서는 Facelets 2.x 를 기본으로 사용하기 때문에 EL 2.1 이 필요하고 이것은 Servlet 2.5 를 필요로 합니다. 만약 EL 2.1 의 API 와 구현을 모두 별도로 사용 할 수 있다면 이론적으로 Servlet 2.4 에서도 동작 할 수 있고 이는 Java 1.5 를 필요로 합니다. 권장은 Servlet 2.5 에 Java 1.5, EL 2.1
  • JSF2.1 : JSF2.1 은 Servlet 3.0 의 일부 특정 기능을 사용합니다. 하지만 Servlet 2.5 와의 호환성을 유지 합니다. Servlet 3.0 은 선택적으로 사용 가능합니다.
  • JSF2.2 : Servlet 3.0 을 필요로 합니다. 왜냐하면 새로운 File Upload 컴포넌트가 서드파티 라이브러리들을 이용하지 않고 표준 Servlet 3.0 의 기능을 이용하기 때문입니다. Java 1.6 이상이 필요합니다.

Servlet 버전별 웹서버 호환

  • Servlet 2.4 : Tomcat 5.5.x, JBoss AS 4.x, Sun Java application server
  • Servlet 2.5 : Tomcat 6.0.x, JBoss AS 5.x, Glassfish 2.x
  • Servlet 3.0 : Tomcat 7.0.x, JBoss AS 6.x, 7.x, Glassfish 3.x
  • Servlet 3.1 : Tomcat 8.0.x, WildFly 8.x, Glassfish 4.x



출처


'공부 > JSF' 카테고리의 다른 글

JavaServer Faces 어플리케이션 개발 준비  (0) 2014.10.04
Facelets 란 무엇인가?  (0) 2014.10.02
Facelets 소개  (0) 2014.10.02
JSF 기술의 이점  (0) 2014.10.02
JSF 어플리케이션이란 무엇일까요?  (0) 2014.10.01
Posted by #HanaLee