문제

Java 웹 개발 세계에서 마스터 페이지는 무엇입니까?Tiles, Tapestry 및 Velocity에 대해 들어 봤지만 그것에 대해 아무것도 모릅니다.마스터 페이지만큼 사용하기 쉬운가요?

하나의 템플릿을 설정하고 후속 페이지가 템플릿에서 파생되고 마스터 페이지와 유사하게 콘텐츠 영역을 재정의하는 것처럼 쉬운 작업을 원합니다.

어떤 예라도 좋을 것입니다 !!

도움이 되었습니까?

해결책

먼저, Java에서 ASP.Net에 해당하는 것은 여러분이 언급 한 것과 같은 웹 프레임 워크 (타일, 태피스트리 및 Velocity)가 될 것입니다.

마스터 페이지는 마스터 템플릿에 슬롯 된 콘텐츠 측면에서 페이지를 정의하는 기능을 제공합니다.

마스터 페이지는 ASP.Net (.Net 웹 프레임 워크)의 기능이므로 Java 웹 프레임 워크의 마스터 페이지와 유사한 기능을 찾고 있습니다.

http://tiles.apache.org/framework/tutorial/basic /pages.html 은 Tiles와 JSP를 사용하여 Java 웹 프레임 워크 인 Struts와 유사한 것을 구현하는 몇 가지 기본 예제를 제공합니다. 이 경우 마스터 페이지 기능은 Struts 위에있는 플러그인입니다.

Velocity는 일반적인 템플릿 엔진으로, 웹 페이지에 특화되어 있지 않으며 확실히 필요 이상으로 복잡합니다. (코드 생성에 사용한 적이 있습니다.)

Tapestry는 Tile보다 완전한 기능을 갖춘 웹 스택에 가깝고 귀하의 목적에 적합 할 것입니다. 템플릿 기능에는 구성 요소를 만들고 여기에 모든 공통 마크 업을 넣는 것이 포함됩니다. 예는 http://www.infoq.com/articles/tapestry5-intro.

세부 사항은 선택한 Java 웹 프레임 워크에 따라 다릅니다.

다른 팁

Facelets 도 확인해야합니다. DeveloperWorks에 좋은 소개 기사 가 있습니다.

Facelets <ui:insert/> 태그는 마스터 페이지에서 사용되는 ASP.NET <asp:ContentPlaceHolder/> 태그와 비슷합니다. 페이지의 해당 영역에 대한 기본 콘텐츠를 제공 할 수 있지만 이는 무시할 수 있습니다.

다른 페이지에서 Facelets 템플릿을 채우려면 템플릿 파일을 가리키는 <ui:composition/> 요소로 시작합니다. 이것은 ASP.NET 페이지에서 MasterPageFile 속성을 선언하는 것과 거의 동일합니다.

<ui:composition/> 요소 내에서 <ui:define/> 요소를 사용하여 <asp:Content/> 태그가 사용되는 방식과 유사하게 템플릿 기본값을 재정의합니다. 이러한 요소는 간단한 문자열에서 JSF 요소에 이르기까지 모든 종류의 콘텐츠를 포함 할 수 있습니다.

그래서 모든 것을 하나로 모으려면 ...

master.xhtml : 라코 디스

page.xhtml : 라코 디스

다음과 같이 렌더링됩니다. 라코 디스

또한 다른 데이터로 페이지 구성 요소를 재사용하는 기능과 같은 Facelets를 사용하여 몇 가지 다른 이점을 얻을 수 있습니다.

(추가 정보를 제공하기 위해 수정 됨)

이전 프로젝트에서 sitemesh 를 사용했으며 설정이 매우 쉽습니다.기본적으로 마스터 페이지와 동일한 데코레이터를 만듭니다.그런 다음 어떤 데코레이터를 사용하는 하위 페이지를 정의합니다.자세한 내용은 sitemesh 소개 를 참조하세요.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top