jsp 레이아웃 예제

레이아웃 변경의 영향을 최소화하려면 콘텐츠 외에 레이아웃을 포함하기 위한 메커니즘이 필요합니다. 이렇게 하면 레이아웃과 콘텐츠를 사용하는 파일을 수정하지 않고도 레이아웃과 콘텐츠가 다를 수 있습니다. 이 메커니즘은 JSP 템플릿입니다. 많은 사람들이 JSP 대신 타일 (JSP 확장 프레임 워크)을 사용합니다. 타일이 처음 나왔을 때 JSP는 JSP 페이지를 재사용하기 위해 할 수있는 일에 다소 제한이 있었습니다. JSP가 개선되었으며 이제 JSP 태그 파일 (이후 요리 책에서 다루어지다)이 있습니다. 이것은 당신이 타일을 피해야한다는 것을 말하는 것이 아니라, 단지 당신이 매우 복잡한 사이트 레이아웃을 하지 않는 한, 그리고 아마도 당신이 복잡한 사이트 레이아웃을 가지고 있는 경우에도, JSP는 일반적으로 충분하다는 것을 명시하는 것입니다. JSP가 실제로 수행할 수 있는 작업을 탐색할 때까지 학습해야 하는 복잡성과 다른 프레임워크를 추가하지 마십시오. 웹 개발 도구는 빠르게 진행되고 있지만 스윙이나 VisualWorks 스몰토크와 같은 대부분의 그래픽 사용자 인터페이스(GUI) 툴킷보다 여전히 뒤쳐져 있습니다. 예를 들어, 기존의 GUI 도구 키트는 레이아웃 관리자를 한 가지 형태 또는 다른 형태로 제공하여 레이아웃 알고리즘을 캡슐화하고 재사용할 수 있도록 합니다. 이 문서에서는 레이아웃 관리자와 마찬가지로 레이아웃을 캡슐화하여 복제하는 대신 다시 사용할 수 있도록 JavaServer 페이지(JSP)에 대한 템플릿 메커니즘을 살펴봅니다. JSP 조각(헤더 및 바닥글)을 포함하기 위해 를 사용했습니다.

물론 를 가지고 있는 것이 좋습니다. 그러나 수백 개의 JSP 파일이 있는 경우 태그를 모든 JSP에 복사/붙여넣습니다. 모든 레이아웃 정보를 전용 파일로 외부화하는 것이 좋습니다. 다음 섹션에서는 페이지 레이아웃을 정의하는 테이블을 시작합니다. 위에 나열된 예제에서는 JSP 포함 지시문에 포함된 콘텐츠가 포함되어 있으므로 페이지 자체를 수정하지 않고도 포함된 파일을 변경하여 페이지의 내용을 변경할 수 있습니다. 그러나 레이아웃은 하드 코딩되므로 레이아웃을 변경하려면 페이지를 수정해야 합니다. 웹 사이트에 동일한 형식의 페이지가 여러 개 있는 경우 일반적인 레이아웃을 변경해도 모든 페이지를 수정해야 합니다. 또한 사용자 지정 레이아웃 템플릿을 만들고 레이아웃 템플릿 매니페스트를 통해 관리 유틸리티 내에서 사용할 수 있도록 할 수 있습니다. 레이아웃 템플릿 매니페스트 만들기에 대한 자세한 내용은 사용자 지정 포털 만들기 장에서 레이아웃 템플릿 매니페스트를 참조하십시오.

레이아웃 템플릿은 기어가 렌더링되는 페이지 템플릿 내의 영역 구조를 지정합니다. 레이아웃 템플릿은 파일이 포함되는 것이 아니라 태그(paf:layout)를 통해 페이지 템플릿에 포함됩니다. 레이아웃 템플릿은 단일 행이 있는 테이블을 통해 기어 영역을 구조화합니다. 행 내의 각 셀은 페이지의 기어 영역의 열에 해당합니다. 예를 들어, 세 개의 셀은 3열 기어 영역을 의미합니다. 각 셀 내에서 열에 대한 이름 및 영역 렌더링 조각이 지정됩니다. 필수=”true”를 설정하여 모든 속성을 필수로 만들 수 있습니다. 예: . 이 경우 템플릿을 사용하는 모든 JSP는 body_area를 제공해야 합니다.

tut-install/javaeetutorial5/예제/웹/서점3/웹/템플릿/screendefinitions.jspf, 각 화면에 의해 사용 되는 하위 구성 요소를 정의 합니다. 모든 화면은 동일한 배너를 가지지만 제목과 본문 콘텐츠는 다릅니다(그림 5-1의 JSP 페이지 열에 의해 지정). 위의 예제에 따라 템플릿 layout.jspx를 사용하여 보기 “타일/사용자”가 /WEB-INF/view/jsp/users.jspx로 확인됩니다. 레이아웃은 개발 과정에서 많은 변경 사항을 거칩니다. 실제로 레이아웃 관리자는 객체 지향 디자인의 개념 중 하나인 다양한 개념을 캡슐화하는 예제를 보여 주며, 이는 많은 디자인 패턴의 기본 테마이기도 합니다.

Share on FacebookPin on PinterestTweet about this on TwitterShare on TumblrShare on Google+Digg this