2014-09-10 2 views
5

저는 Apache Velocity를 처음 접했고 템플릿을 구성하는 최적의 방법을 찾는 데 약간의 어려움을 겪고 있습니다. 나는 또한 누군가가이 방법으로 "기본"템플릿에 가까이 와서 본Apache Velocity "기본 템플릿"?

#parse("header.vm") 
<body> 
    ... 
</body> 
#parse("footer.vm") 

:

<head> 
    ... 
</head> 
<body> 
#if($activeTab=="home") 
    #parse("home.vm") 
#elseif($activeTab=="aboutus") 
    #parse("aboutus.vm") 
...and so on. 
</body> 

이 보인다 어떤 가이드의 대부분에서 나는 페이지가 다음과 같이 구축 된 본 조금 바보 같지만 작동하는 것 같아요.

내가 돌리기 많이 사용했습니다, 그래서 버릇 수 있습니다,하지만 난 기본적으로이 같은 기본 템플릿으로 끝나는 다른에 템플릿을 삽입하고 싶습니다 :

<head> 
    ... 
</head> 
<body> 
    $content 
</body> 

그리고 쓰기 다른 모든 템플릿은 다음과 같습니다.

#parse(main){ 
    TEMPLATE CONTENT 
} 

Velocity에서도 가능합니까? 그렇다면 나쁜 행동입니까? 그렇다면 이유는 무엇입니까? 감사합니다. .

답변

3

$!bodyContent 변수를 사용할 수 있습니다.

mainLayout.vm : index.vm

#macro(mainLayout) 
<head> 
    ... 
</head> 
<body> 
    $!bodyContent 
</body> 
#end 

:

#@mainLayout() 
    <h1>Index page</h1> 
#end 
5

Velocity 자체는 레이아웃 템플릿 (기본 템플릿)을 지원하지 않습니다. 그러나 그들은 Velocity Layout Servlet (VLS)라는 도구를 제공합니다.

Rythm과 같은 다른 템플릿 솔루션은 헤드 업을 제공하기 위해 template inheritance mechanism (demo)을 통해 매우 훌륭한 템플릿 레이아웃 관리 기능을 제공합니다. 면책 조항 : 나는 Rythm의 저자이기 때문에 여기에 편견이있을 수 있습니다. 그러나 다른 템플릿 솔루션의 장단점을 이해하기 위해 타사에서 만든 체크 아웃 this article을 사용할 수 있습니다.

+0

I이 GitHub의 REPO의 발견 [스프링 리듬 (https://github.com/greenlaw110/spring-rythm) . 이거 당신 껍니까? 프로젝트가 어떤 상태에 있다고합니까? – surfmuggle

+0

예 그것은 나의 저장소입니다. 널리 사용되지는 않지만 몇 가지 은행 프로젝트에서 사용합니다. –

관련 문제