2012-11-06 3 views
0

내 프로젝트에 Sitemesh 3을 사용하고 있으며 지금까지 훌륭하게 작동했습니다. 최근에 나는 내가 붙어있는 상황을 발견했다.Sitemesh 3의 다중 본문 태그

최종보기는 2 개의 html 파일로 구성되어야하며 둘 다 자체 태그가 있습니다. 을 File1 :

<html> 
    <head>Head1</head> 
    <body>body1</body> 
</html> 

파일 2 :

<html> 
    <head>Head2</head> 
    <body>body2</body> 
</html> 

내가 프리 마커를 사용하여보기를 구성하고 태그를 포함한다. 같은, 합성 HTML 보이는 : 다음

<html> 
    <head>Head1</head> 
    <body>body1</body> 
</html> 
<html> 
    <head>Head2</head> 
    <body>body2</body> 
</html> 

하는 내 장식입니다 :

<html> 
<head> 
    <sitemesh:write property='head'/> 
</head> 
<body> 
    <div class="container"> 
     <sitemesh:write property='body'/> 
    </div> 
</body> 
</html> 

그러나 한 번 장식, 내가 얻고 최종 출력은 다음과 같습니다

<html> 
<head> 
    <head>Head1</head> 
</head> 
<body> 
    <div class="container"> 
     <body>body1</body> 
    </div> 
</body> 
</html> 

그러나 예상 출력 은

<html> 
<head> 
    <head> 
     Head1 
     Head2 
    </head> 
</head> 
<body> 
    <div class="container"> 
      body1 
      body2 
    </div> 
</body> 
</html> 

similar question에 걸쳐 있지만, 여러 개의 데코레이터를 만들고 싶지 않기 때문에이 솔루션은 저에게 적합하지 않습니다.

Sitemesh 3에서 가능한지 알고 싶습니다. 그렇다면 어떻게됩니까?

감사합니다.

답변

2

Sitemesh 3를 확장해도 괜찮 으면 데코레이터 템플릿에 서버 측 포함에 대한 지원을 추가하는 것이 매우 쉽습니다. 나는 정확히 이것을 다른 도서관 (UtterlyIdle)에서한다.

저는 Decorator 언어로 StringTemplate을 사용하고 있습니다 만, Freemarker 또는 다른 템플릿 도구에서 작동해야합니다. 나는 PageMap에 추가 한 다음 내 장식 템플릿 호출

$include("someUrl").body$ 

이것은 포함 않습니다에 다음 통해 Sitemesh 3 엔진 출력을 구문 분석합니다. 이렇게하면 원하는만큼 포함 할 수 있습니다.

희망이 맞는 것

+0

이것은 정확히 대답은 아니지만 대체 방법입니다. 그래서 대답으로 받아들입니다. :) 감사. – Garbage