JSF 인 액션 [표준 UI 프레임워크]
- 원서명JavaServer Faces IN ACTION (ISBN 1932394125)
- 지은이Kito Mann
- 옮긴이이태상
- ISBN : 8989975875
- 35,000원
- 2006년 03월 17일 펴냄 (절판)
- 페이퍼백 | 736쪽 | 190*255mm
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
Java EE 5에 정식 포함될 컴포넌트 기술 표준인 JSF(JavaServer Faces)를 설명하는 `JSF 인 액션`은 JSR 252(JavaServer Faces 1.2)의 멤버인 Kito D. Mann이 저술한 『JavaServer Faces in Action 』의 번역서이다. JSF 애플리케이션 제작에 필요한 모든 사항을 다루며, 실전 JSF 예제를 통해 UI 로직 및 애플리케이션 로직을 구현해본다. 자바 웹 애플리케이션에 있어서의 표준 UI 기술로서 널리 사용될 JSF의 모든 것을 알아볼 수 있는 국내 유일한 기술서이다.
JSF(JavaServer Faces)를 사용하면 HTTP 요청과 응답 대신 UI 컴포넌트와 이벤트를 통해 웹 애플리케이션을 효율적으로 개발할 수 있다. 버튼, 텍스트 박스, 체크박스, 데이터 그리드 등과 같은 JSF 컴포넌트들은 사용자의 요청들 사이에 유지되기 때문에, 상태를 관리하기 위한 별도의 번거로운 작업들이 필요 없다. 또한 JSF는 사용자의 입력과 애플리케이션 객체를 동기화 시킴으로써 웹 개발에 있어서의 지루한 또 다른 작업들을 자동으로 처리한다.
JSF 인 액션은 입문서이자 학습서이며, 편리한 참고서이다. 이 책은 많은 예제와 함께 JSF가 무엇인지, 어떻게 작동하는지, 그리고 스트럿츠, 서블릿, 포틀릿, JSP, JSTL 등의 기술 및 또 다른 프레임워크와 어떤 관계가 있는지 설명한다. 또한 표준 컴포넌트, 렌더러, 변환기, 검증기 등을 자세히 다루며, 그것들을 사용하여 탄탄한 애플리케이션을 만드는 방법을 제공한다. 이 책은 여러분이 지금 당장 JSF 애플리케이션 개발을 시작할 수 있도록 도와줄 것이다.
[ 이 책에서 다루는 내용 ]
* JSF 위젯 사용 방법
* 기존의 애플리케이션 및 스트럿츠와 통합하는 방법
* 오라클, IBM, 썬의 JSF 도구 소개
* 커스텀 컴포넌트 및 렌더러의 제작 방법
* 변환기 및 검증기 제작 방법
* 모든 요소를 결합하여 JSF 애플리케이션을 개발하는 방법
▶ 온라인 추가문서(영문본 PDF파일)는 JSF 인 액션을 구입하신 분만 볼 수 있도록 암호화 되어있습니다. 문서를 열 때 입력하실 암호는 본 책의 xxix페이지를 참조하십시오.
JSF(JavaServer Faces)를 사용하면 HTTP 요청과 응답 대신 UI 컴포넌트와 이벤트를 통해 웹 애플리케이션을 효율적으로 개발할 수 있다. 버튼, 텍스트 박스, 체크박스, 데이터 그리드 등과 같은 JSF 컴포넌트들은 사용자의 요청들 사이에 유지되기 때문에, 상태를 관리하기 위한 별도의 번거로운 작업들이 필요 없다. 또한 JSF는 사용자의 입력과 애플리케이션 객체를 동기화 시킴으로써 웹 개발에 있어서의 지루한 또 다른 작업들을 자동으로 처리한다.
JSF 인 액션은 입문서이자 학습서이며, 편리한 참고서이다. 이 책은 많은 예제와 함께 JSF가 무엇인지, 어떻게 작동하는지, 그리고 스트럿츠, 서블릿, 포틀릿, JSP, JSTL 등의 기술 및 또 다른 프레임워크와 어떤 관계가 있는지 설명한다. 또한 표준 컴포넌트, 렌더러, 변환기, 검증기 등을 자세히 다루며, 그것들을 사용하여 탄탄한 애플리케이션을 만드는 방법을 제공한다. 이 책은 여러분이 지금 당장 JSF 애플리케이션 개발을 시작할 수 있도록 도와줄 것이다.
[ 이 책에서 다루는 내용 ]
* JSF 위젯 사용 방법
* 기존의 애플리케이션 및 스트럿츠와 통합하는 방법
* 오라클, IBM, 썬의 JSF 도구 소개
* 커스텀 컴포넌트 및 렌더러의 제작 방법
* 변환기 및 검증기 제작 방법
* 모든 요소를 결합하여 JSF 애플리케이션을 개발하는 방법
▶ 온라인 추가문서(영문본 PDF파일)는 JSF 인 액션을 구입하신 분만 볼 수 있도록 암호화 되어있습니다. 문서를 열 때 입력하실 암호는 본 책의 xxix페이지를 참조하십시오.
목차
목차
- 1부 JSF로의 탐험
- 1장 JavaServer Faces 소개
- 1.1 RAD 세상
- 1.1.1 그렇다면 JSF란 무엇인가?
- 1.1.2 업계의 지원
- 1.2 기반 기술
- 1.2.1 HTTP
- 1.2.2 서블릿
- 1.2.3 포틀릿
- 1.2.4 자바빈
- 1.2.5 JSP 및 그 밖의 웹 페이지 표현기술
- 1.3 프레임워크, 프레임워크, 프레임워크
- 1.3.1 프레임워크가 필요한 이유
- 1.3.2 그녀는 `모델 2`
- 1.3.3 JSF와 스트러츠, 그 밖의 프레임워크
- 1.4 어디서나 존재하는 컴포넌트
- 1.5 Hello, world!
- 1.5.1 hello.jsp 분석
- 1.5.2 goodbye.jsp 분석
- 1.5.3 HelloBean 클래스 분석
- 1.5.4 faces-config.xml 파일 설정
- 1.5.5 web.xml 파일 설정
- 1.6 요약
- 2장 JSF의 기초
- 2.1 핵심 사항
- 2.1.1 사용자 인터페이스 컴포넌트
- 2.1.2 렌더러
- 2.1.3 검증기
- 2.1.4 기반 빈
- 2.1.5 변환기
- 2.1.6 이벤트와 리스너
- 2.1.7 메시지
- 2.1.8 네비게이션
- 2.2 요청 처리 생명주기
- 2.2.1 단계 1: 뷰 복원
- 2.2.2 단계 2: 요청 값 적용
- 2.2.3 단계 3: 유효성 검증 처리
- 2.2.4 단계 4: 모델 값 갱신
- 2.2.5 단계 5: 애플리케이션 호출
- 2.2.6 단계 6: 응답 렌더링
- 2.3 컴포넌트 식별자 및 클라이언트 식별자의 이해
- 2.3.1 명명 컨테이너
- 2.3.2 참조 식별자
- 2.4 JSF 표현 언어
- 2.4.1 범위 변수의 이해
- 2.4.2 내장 변수의 사용
- 2.4.3 컴포넌트와 함께 EL 사용하기
- 2.5 요약
- 3장 워밍업: JSF의 이모저모
- 3.1 JSF 환경 설정
- 3.1.1 기본 요구사항
- 3.1.2 JSF 구현체의 선택
- 3.1.3 디렉토리 구조
- 3.1.4 설정
- 3.2 JSP의 역할
- 3.2.1 JSP 인클루드 사용하기
- 3.2.2 JSF를 JSTL 및 그 밖의 JSP 커스텀 태그와 함께 사용하기
- 3.3 빈의 생성 및 초기화
- 3.3.1 관리 빈 선언
- 3.3.2 List와 Map을 관리 빈으로 선언
- 3.3.3 값 바인딩 표현식으로 값 지정하기
- 3.4 페이지 바다의 항해
- 3.5 요약
- 4장 표준 컴포넌트로 시작하기
- 4.1 모든 것은 컴포넌트에
- 4.1.1 HTML 속성 사용하기
- 4.1.2 패싯의 이해
- 4.1.3 툴의 강력함
- 4.1.4 이면에 존재하는 렌더 키트
- 4.2 공통 컴포넌트 특성
- 4.3 UIViewRoot로 페이지 제어하기
- 4.4 UIParameter로 컴포넌트 파라미터 설정하기
- 4.5 Output으로 데이터 표현하기
- 4.5.1 HtmlOutputText로 평범한 텍스트 보여주기
- 4.5.2 <f:verbatim> 태그로 UIOutput 사용하기
- 4.5.3 HtmlOutputLabel로 입력 레이블 만들기
- 4.5.4 HtmlOutputFormat으로 파라미터화된 텍스트 만들기
- 4.5.4 HtmlOutputLink로 하이퍼링크 보여주기
- 4.6 HtmlGraphicImage로 이미지 보여주기
- 4.7 HtmlMessage로 컴포넌트 메시지 보여주기
- 4.8 HtmlMessages로 다수의 애플리케이션 메시지 보여주기
- 4.9 Panel 컴포넌트로 그룹화 및 레이아웃 만들기
- 4.9.1 HtmlPanelGroup으로 컴포넌트 그룹화하기
- 4.9.2 HtmlPanelGrid로 테이블 만들기
- 4.10 요약
- 5장 입력 컴포넌트와 데이터 테이블 컴포넌트
- 5.1 이벤트 리스너 등록하기
- 5.1.1 값 변경 리스너 선언하기
- 5.1.2 액션 리스너 선언하기
- 5.2 공통 컴포넌트 특성
- 5.3 HtmlForm으로 폼 다루기
- 5.4 기본 사용자 입력 다루기
- 5.4.1 HtmlInputText로 기본 텍스트 필드 선언하기
- 5.4.2 HtmlInputTextarea로 메모 필드 만들기
- 5.4.3 HtmlInputSecret으로 암호 필드 만들기
- 5.4.4 HtmlInputHidden으로 히든 필드 만들기
- 5.5 HtmlSelectBooleanCheckbox로 체크박스 만들기
- 5.6 아이템 목록 정의하기
- 5.6.1 단일한 아이템을 위한 UISelectItem
- 5.6.2 다중 아이템을 위한 UISelectItems
- 5.7 다중 선택 아이템 다루기
- 5.7.1 HtmlSelectManyCheckbox로 체크박스 그룹 만들기
- 5.7.2 HtmlSelectManyListbox로 리스트박스 만들기
- 5.7.3 HtmlSelectManyMenu로 단일 아이템 리스트박스 만들기
- 5.8 단일 선택 아이템 다루기
- 5.8.1 HtmlSelectOneRadio로 라디오 버튼 그룹 만들기
- 5.8.2 HtmlSelectOneListbox로 단일 선택 리스트박스 만들기
- 5.8.3 HtmlSelectOneMenu로 콤보 박스 만들기
- 5.9 애플리케이션 명령 실행
- 5.9.1 HtmlCommandButton으로 버튼 만들기
- 5.9.2 HtmlCommandLink로 액션 링크 만들기
- 5.10 HtmlDataTable로 데이터 집합 표현하기
- 5.11 요약
- 6장 국제화, 검증기, 변환기
- 6.1 국제화와 지역화
- 6.1.1 지역화 살펴보기
- 6.1.2 리소스 번들 만들기
- 6.1.3 컴포넌트와 함께 리소스 번들 사용하기
- 6.1.4 백엔드 코드의 텍스트에 대한 국제화
- 6.2 입력값 검증
- 6.2.1 검증 메소드 사용하기
- 6.2.2 검증기 사용하기
- 6.2.3 표준 검증기 사용하기
- 6.2.4 여러 검증기의 조합
- 6.3 타입 변환 및 포맷팅
- 6.3.1 변환기 사용하기
- 6.3.2 표준 변환기로 작업하기
- 6.4 애플리케이션 메시지 커스터마이징하기
- 6.5 요약
- 2부 사용자 인터페이스 개발
- 7장 ProjectTrack 소개
- 7.1 요구사항
- 7.2 개념적 모델
- 7.3 사용자 인터페이스
- 7.4 개발팀
- 7.5 요약
- 8장 로그인 페이지 작성: 자바 코드 없이 사용자 인터페이스 개발하기
- 8.1 시작하기
- 8.1.1 web.xml의 설정
- 8.1.2 faces-config.xml의 설정
- 8.2 로그인 페이지 작성
- 8.2.1 HtmlGraphicImage와 HtmlOutputText 컴포넌트 추가
- 8.2.2 폼 추가
- 8.3 페이지에 멋 내기
- 8.3.1 버튼 이미지 사용하기
- 8.3.2 자바스크립트 추가하기
- 8.3.3 CSS 추가하기
- 8.4 검증기 추가하기
- 8.4.1 검증 메시지 커스터마이징
- 8.5 HtmlPanelGrid를 사용한 레이아웃 개선
- 8.6 요약
- 9장 나머지 페이지 작성: 자바 코드 없이 사용자 인터페이스 개발하기
- 9.1 커스텀 컴포넌트로 헤더 만들기
- 9.1.1 커스텀 툴바 컴포넌트 사용하기
- 9.1.2 네비게이션 규칙 설정하기
- 9.2 패널을 사용한 데이터 테이블 프로토타이핑
- 9.2.1 `인박스` 페이지
- 9.2.2 네비게이션 규칙 설정
- 9.2.3 `전체 보기` 페이지
- 9.2.4 네비게이션 규칙 설정
- 9.3 입력 폼 만들기
- 9.3.1 `프로젝트 승인` 페이지
- 9.3.2 네비게이션 규칙 설정
- 9.3.3 `프로젝트 기각` 페이지
- 9.3.4 네비게이션 규칙 설정
- 9.3.5 `프로젝트 생성` 페이지
- 9.3.6 네비게이션 규칙 설정
- 9.4 `프로젝트 상세보기` 페이지
- 9.4.1 네비게이션 규칙 설정
- 9.5 요약
- 10장 애플리케이션 기능 통합
- 10.1 JSF 개발 방식의 이해
- 10.2 애플리케이션 환경 알아보기
- 10.3 보안 적용을 위한 페이지 재구성
- 10.4 로그인 페이지
- 10.4.1 네비게이션 규칙 수정
- 10.5 헤더
- 10.5.1 네비게이션 규칙 수정
- 10.6 데이터 그리드 통합
- 10.6.1 `인박스` 페이지
- 10.6.2 `전체 보기` 페이지
- 10.7 입력 폼 통합
- 10.7.1 인클루드 수정
- 10.7.2 `프로젝트 승인` 페이지
- 10.7.3 `프로젝트 기각` 페이지
- 10.7.4 `프로젝트 생성` 페이지
- 10.8 ‘프로젝트 상세보기` 페이지
- 10.8.1 네비게이션 규칙 수정
- 10.9 에러 페이지 추가하기
- 10.9.1 web.xml 수정
- 10.9.2 네비게이션 규칙 수정
- 10.10 UI의 국제화 및 지역화
- 10.10.1 텍스트를 리소스 번들로 옮기기
- 10.10.2 헤더의 국제화
- 10.10.3 러시아어를 위한 지역화
- 10.11 요약
- 3부 애플리케이션 로직 개발
- 11장
- 11.1 서블릿에서 JSF까지
- 11.2 애플리케이션의 근간
- 11.2.1 Application
- 11.2.2 표현식 평가하기
- 11.3 모든 것이 컨텍스트 안에
- 11.3.1 FacesContext
- 11.3.2 FacesMessage
- 11.3.3 ExternalContext
- 11.4 이벤트 처리
- 11.4.1 FacesEvent
- 11.4.2 액션 이벤트의 처리
- 11.4.3 값-변경 이벤트의 처리
- 11.4.4 단계 이벤트의 처리
- 11.5 컴포넌트의 재조명
- 11.5.1 UIComponent
- 11.5.2 UIViewRoot
- 11.5.3 ValueHolder
- 11.5.4 EditableValueHolder
- 11.5.5 SelectItem 및 SelectItemGroup 모델 빈
- 11.6 요약
- 12장 애플리케이션 빌드: 설계 및 기초 클래스
- 12.1 애플리케이션의 계층
- 12.2 빈(bean) 요리하기
- 12.2.1 toString의 중요성
- 12.2.2 직렬화
- 12.2.3 모든 것이 특성 안에
- 12.2.4 빈 공개하기
- 12.3 비즈니스 계층 및 데이터 계층 분석
- 12.4 애플리케이션 계층 개발하기
- 12.4.1 상수 다루기
- 12.4.2 유틸리티 메소드 구성하기
- 12.4.3 싱글톤 초기화
- 12.4.4 비즈니스 객체의 적용
- 12.5 세션 유지를 위한 Visit 객체 작성
- 12.6 기초 기반 빈 클래스 개발
- 12.7 요약
- 13장 애플리케이션 빌드: 기반 빈, 보안, 국제화
- 13.1 기반 빈 작성
- 13.1.1 쓰레드 안전성
- 13.1.2 에러 처리
- 13.1.3 인증 수행
- 13.1.4 UIData를 통한 프로젝트의 목록화 및 리스너의 파라미터화
- 13.1.5 프로젝트 갱신
- 13.1.6 프로젝트 생성
- 13.1.7 UIData로 프로젝트 이력 보여주기
- 13.1.8 JDBC ResultSet과 UIData로 작업하기
- 13.2 보안 적용하기
- 13.2.1 컨테이너 기반 보안 vs. 커스텀 보안
- 13.2.2 커스텀 보안 사용하기
- 13.3 코드에서의 국제화 지원
- 13.3.1 리소스 번들을 통한 텍스트의 국제화
- 13.3.2 메시지의 국제화
- 13.4 설계 방식의 결정과 대안
- 13.4.1 비즈니스 계층으로의 접근
- 13.4.2 기능별로 빈 구성하기
- 13.4.3 액션 메소드를 기반 빈에서 구현
- 13.4.4 관리 빈 생성 설비를 통한 기반 빈 특성의 초기화
- 13.5 요약
- 14장 스트럿츠 및 기존 애플리케이션과의 통합
- 14.1 통합의 의미
- 14.2 JSF를 다른 프레임워크와 통합하는 경우
- 14.3 요청과 응답의 다양한 얼굴
- 14.4 JSF와 스트럿츠 애플리케이션의 통합
- 14.4.1 첫 단계
- 14.4.2 스트럿츠 JSP 태그 변경
- 14.4.3 JSF 액션 메소드와 관리 빈 사용하기
- 14.4.4 누가 누구를 제어하는가?
- 14.5 스트럿츠를 사용하지 않는 애플리케이션과 JSF와의 통합
- 14.6 요약
- 4부 커스텀 컴포넌트, 렌더러, 검증기 및 변환기 작성
- 15장 JSF 환경: 컴포넌트 개발자의 관점
- 15.1 UI 확장의 열반으로 가는 세 단계
- 15.2 UI 컴포넌트 개발
- 15.2.1 UI 컴포넌트의 제작 여부 결정
- 15.2.2 클래스와 인터페이스
- 15.2.3 메소드 바인딩을 사용한 이벤트 처리
- 15.2.4 등록
- 15.2.5 JSP와의 통합
- 15.3 렌더러 개발
- 15.3.1 렌더러의 작성 여부 결정
- 15.3.2 Renderer
- 15.3.3 RenderKit
- 15.3.4 등록
- 15.3.5 JSP 통합
- 15.4 검증기 개발
- 15.4.1 Validator
- 15.4.2 등록
- 15.4.3 JSP 통합
- 15.5 변환기 개발
- 15.5.1 Converter
- 15.5.2 등록
- 15.5.3 JSP 통합
- 15.6 국제화 다루기
- 15.7 UI 확장 컴포넌트의 패키징
- 15.7 요약
도서 오류 신고
정오표
p63 세 번째 문단 3행
redisplayCommand의 action 특성과 goodbyeCommand의 actionListener 특성도 모두 복원된다.
→ redisplayCommand의 actionListener 속성과 goodbyeCommand의 action 속성도 모두 복원된다.
p82 표 2.6에서 paramValues 행, 예제 열
#{param.address[2]} → #{paramValues[address][2]}
p150 리스트 4.1 10행
<span style="background-color: grey"> → <span style="background-color: gray">
p161 표 4.14 컴포넌트 태그 행
<f:param value="#{"header[ "User-Agent" ]}"/>
p170 표 4.22 심각도 열
IInfo → Info
p193 표 5.4 JSP 태그 행
<h:input> → <h:inputText>
p209 두 번째 문단 1행
tablindex → tabindex
p228 ◆ 네 번째 항목
◆ 이전 예제에서의 HtmlInputText 대신 각 열에 HtmlOutputText 컴포넌트를 사용함으로써,
→ ◆ 이전 예제에서의 HtmlOutputText 대신 각 열에 HtmlInputText 컴포넌트를 사용함으로써,
p260 표 6.7 K행, 의미 열
시각 → 시간
p263 표 6.9 currency 행, 예제 (한국) 열
8356;2,934.23 → \2,934.23
p342 리스트 9.11
리스트 9.11 reject.jsp: '프로젝트 생성' 페이지의 JSP 소스
→ 리스트 9.11 create.jsp: '프로젝트 생성' 페이지의 JSP 소스
p388 리스트 10.2
,project-input → project-input
p454 15행
"lizard" → "lizards"
p512 5행
sort 액션 리스너 메소드에 의해 저장될 수 있다.
→ sort 액션 리스너 메소드에 의해 정렬될 수 있다.
p517 노트 아래로 네 번째 행
Proejct → Project
p543 노트 아래 첫 번째 행
설계의 예가 아니다 → 구현의 예가 아니다
p557 표 13.2 요약문 (영어), 상세문 (영어) 열 수정
p572 그림 14.1
redisplayCommand의 action 특성과 goodbyeCommand의 actionListener 특성도 모두 복원된다.
→ redisplayCommand의 actionListener 속성과 goodbyeCommand의 action 속성도 모두 복원된다.
p82 표 2.6에서 paramValues 행, 예제 열
#{param.address[2]} → #{paramValues[address][2]}
p150 리스트 4.1 10행
<span style="background-color: grey"> → <span style="background-color: gray">
p161 표 4.14 컴포넌트 태그 행
<f:param value="#{"header[ "User-Agent" ]}"/>
p170 표 4.22 심각도 열
IInfo → Info
p193 표 5.4 JSP 태그 행
<h:input> → <h:inputText>
p209 두 번째 문단 1행
tablindex → tabindex
p228 ◆ 네 번째 항목
◆ 이전 예제에서의 HtmlInputText 대신 각 열에 HtmlOutputText 컴포넌트를 사용함으로써,
→ ◆ 이전 예제에서의 HtmlOutputText 대신 각 열에 HtmlInputText 컴포넌트를 사용함으로써,
p260 표 6.7 K행, 의미 열
시각 → 시간
p263 표 6.9 currency 행, 예제 (한국) 열
8356;2,934.23 → \2,934.23
p342 리스트 9.11
리스트 9.11 reject.jsp: '프로젝트 생성' 페이지의 JSP 소스
→ 리스트 9.11 create.jsp: '프로젝트 생성' 페이지의 JSP 소스
p388 리스트 10.2
,project-input → project-input
p454 15행
"lizard" → "lizards"
p512 5행
sort 액션 리스너 메소드에 의해 저장될 수 있다.
→ sort 액션 리스너 메소드에 의해 정렬될 수 있다.
p517 노트 아래로 네 번째 행
Proejct → Project
p543 노트 아래 첫 번째 행
설계의 예가 아니다 → 구현의 예가 아니다
p557 표 13.2 요약문 (영어), 상세문 (영어) 열 수정
p572 그림 14.1