2011-12-31 6 views
0

나는 필사적으로 세 가지 주요 요구 사항을 충족 자바 HTML보기 엔진을 찾고 있어요 자바 HTML보기 엔진 : 마스터 템플릿 페이지에 대한마스터 템플릿 및 하위 뷰

  1. 지원.
  2. HTML 템플릿은 다른 템플릿 내의 하위보기로 사용할 수 있습니다.
  3. HTML 템플릿은 설정 파일이나 Java 클래스에 의해 백업 될 필요가 없습니다.

주로 읽기 전용 페이지와 양식이있는 몇 페이지로 구성된 Java 웹 응용 프로그램입니다. 대부분 MVC 프레임 워크와 함께 사용합니다.

마스터 템플릿 페이지

되는 HTML의 기본 구조는 마스터 HTML 페이지에서 정의되어야한다. 서로 다른 페이지는 최종 페이지를 만들기 위해 마스터 페이지에 삽입되는 핵심 컨텐츠를 제공합니다. 이는 단순히 머리말과 꼬리말을 포함하는 것 이상입니다.

서브 뷰

페이지가 자신의 콘텐츠 내에서 파단과 같은 다른 HTML 페이지/템플릿을 사용할 수 있어야합니다. 하위 뷰가 표시해야하는 데이터를 제공하기 위해 적어도 하나의 매개 변수를 전달할 수 있어야합니다. 또한 하위 뷰 내에서 하위 뷰를 재귀 적으로 사용할 수 있어야합니다. 다시 말하지만, 이것은 을 넘어 메커니즘을 포함합니다.

HTML 템플릿은 기본적으로 특정 부품이 제공 한 데이터를 기반으로 대체됩니다 HTML이나 XML 페이지입니다 하나의 파일로 구성되어야 아니 백업. 템플릿에 추가 설정 파일이 필요 없습니다. 또한 백업을 위해 Java 클래스를 구현할 필요가 없습니다.

저는 이미 많은 자바 템플릿 엔진을 살펴 보았습니다. 그러나 이들 중 어느 것도이 요구 사항을 충족시키지 못합니다. (닷넷 세계에서 면도기보기 엔진과 ASP.NET MVC하지만 완벽하게 맞지는 될 것입니다.)

업데이트 :

지금까지, 나는 다음과 같은 엔진을 검토 한 결과 (주시기 바랍니다

  • JSP : 등의 파단에 대한 마스터 템플릿 또는 적절한 범위 지정하지 않고 그냥 아주 기본적인 포함 메커니즘을 가지고
  • 나는이 엔진 중 하나) 내 요구 사항을 달성 할 수있는 방법을 간과 한 경우 나 알고 벨로 시티 : 약간 고급 기능을 포함하지만 마스터 페이지는 없습니다.
  • FreeMarker : 메커니즘 포함, 마스터 페이지 없음.
  • Tapestry : 좋은 구성 요소 기반의 하위 뷰는 물론 템플릿 메커니즘을 기반으로합니다. 그러나 나머지 프레임 워크 없이는 템플릿 엔진 부분을 사용하는 것이 쉽지 않을 것입니다. 프레임 워크는 너무 페이지 중심이기 때문에 MVC 프레임 워크와 결합 할 수 없습니다.
  • 타일 : 마지막 페이지 당 2 개의 JSP 페이지가 필요합니다. 두 개의 레이어 (타일과 JSP)는 너무 복잡해지며, 특히 하위 뷰에는 적합합니다.

업데이트 (2) : 나는 몇 가지 용어를 변경했습니다 : 보기 엔진 대신 템플릿 엔진, 파단 대신 구성 요소.

+1

정해진 제안을 피하기 위해, 당신이 보았던 엔진 (당신이 보았던 "많이"또는 "어느 것이 아닌가?")과 당신의 요구 사항을 충족시키지 못한 이유를 쉽게 나열 할 수 있습니다. –

+0

타일이 당신의 요구를 충족시켜야한다고 생각합니다. –

+0

JSP는 실제로 중간 정도의 템플리트를 허용하지만 범위 지정은 고통이 될 수 있습니다. Velocity/FreeMarker는 모두 흠도 (inclusions)를 통한 템플리트 작성을 허용합니다. 타일 ​​(특히 최근 버전)은 XML을 통해 구성되었지만 요구 사항을 충족시키는 것 이상입니다 (사용 가능한 다른 구성 메커니즘이있을 수 있음). SiteMesh는 조금 다르며 당신이 찾고있는 것과 다를 수 있습니다. Mustache와 MVEL이 둘 다 있지만 생각해볼만한 가치가 있다고 생각합니다. –

답변

0

템플릿 엔진을 실제로 보지 않았습니다. JSP, Velocity 및 FreeMarker는 템플릿 엔진이 아닙니다 (템플릿 엔진이라는 뜻). 그것들은 마크 업을 동적으로 생성하고 Java 객체로부터 생성 된 HTML에 데이터를 표시하도록하는 언어입니다. Tapestry는 컴포넌트를 기반으로하는 완벽한 웹 애플리케이션 프레임 워크입니다.

JSP를 사용하여 HTML 페이지를 생성하는 경우 Tiles 나 SIteMesh와 같은 JSP 위에 템플릿 엔진을 사용할 수 있습니다. 그러면 템플릿이 처리되어 템플릿의 "구성 요소"당 하나의 JSP를 가질 수 있습니다. 전체 페이지. JSP는 Stripes, Spring MVC 또는 Struts2와 같은 웹 MVC 프레임 워크 없이는 일반적으로 사용되지 않아야합니다. 이들 모두는 자체 템플릿 지원을 제공하거나 SiteMesh 또는 Tiles와 같은 다른 템플릿 통합을 지원합니다.

+0

"템플릿 엔진"이라는 용어가 JSP, Velocity 등을 설명하는 데 가장 좋지 않을 수 있다는 점에 동의합니다. 타일을 보았습니다. 어떻게 작동하는지 제대로 이해할 수 있을지 확신 할 수 없습니다. 그것은 페이지의 일부를 구성하는 추가 레이어 인 것 같습니다. 마스터 페이지에서는 괜찮습니다. 그러나 구성 요소를 제공하지 않는 것 같습니다. 또는 JSP 페이지에서 _for_ 루프와 같은 일종의 HTML 테이블을 만든 다음 다른 JSP 페이지를 포함시켜 각 행의 표 셀을 채우는 방법은 무엇입니까? 타일이 여기 어떻게 도움이 될까요? – Codo

+0

타일은 다른 타일 안에 중첩 될 수 있습니다. http://tiles.apache.org/framework/tutorial/advanced/nesting-extending.html을 참조하십시오. 방금 설명한 내용을 수행하려면 간단한 JSP 태그 파일 포함 또는 사용으로 충분할 수 있습니다. 그러나 타일은 원한다면 허용 할 것입니다. –

+0

나는 중첩에 관한 그 페이지를 보았다. 하지만 고정 된 구조에서만 작동하는 것으로 보이며 다양한 수의 행이있는 테이블에서는 작동하지 않는 것으로 보입니다. 아니면 Tiles의 개념을 제대로 파악하지 못했습니까? – Codo

관련 문제