Velocity 를 사용 하 세 요.2:Velocity 의 layot 기능 을 사용 하 세 요.

1.Velocity View Servlet 에서 Velocity Layout Servlet 까지
Velocity 를 사용 하여 웹 애플 리 케 이 션 을 개발 할 때 웹.xml 에 Velocity 가 제공 하 는 Velocity ViewServlet 을 설정 하여 velocity 템 플 릿(즉 vm 파일)에 대한 forward 접근 을 받 아들 여야 합 니 다.Velocity ViewServlet 은 request 에 설 치 된 attribute'읽 기'와 템 플 릿 파일 을 merge 로 최종 페이지 를 만 들 고 response 출력 을 사용자 컴퓨터 에 표시 합 니 다.
Velocity ViewServlet 은 간단 하고 사용 하기 쉽다.단,웹.xml 에서 VelocityViewServlet 를 VelocityLayoutServlet 로 바 꾸 고 2,3 마디 만 설정 하면 페이지 가 간단 한 Layout 기능 이 있 습 니 다.이 기능 은 사실 매우 강하 다.
2.Velocity Layout Servlet 가능...
Velocity Layout Servlet 는 velocity 의 페이지 레이아웃 개발 을 간소화 할 수 있 습 니 다.
Velocity Layout Servlet 을 사용 하면 forward 가 한 페이지 에 도착 할 때 이 페이지 를 페이지 레이아웃 의 일부분 으로 자동 으로 표시 할 수 있 습 니 다.예 를 들 어 사용자 자료 페이지 를 방문 하면 사이트 의 머리,꼬리 등 을 자동 으로 출력 하여 처리 할 수 있다.
3.Velocity Layout Servlet 은 순서대로 사용 합 니 다.
시스템 에 몇 개의 페이지 레이아웃 이 이렇게 설정 되 어 있 습 니 다.머리(header),왼쪽 메뉴 영역(sub),오른쪽 페이지 내용 부(main),아래쪽(footer)입 니 다.
1、
파일 만 들 기[webapp home]/vm/layout/layout.vm 는 다음 과 같 습 니 다.
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    ...  ...
    </head>
    <body>
    	<div id="header>#parse('vm/layout/header.vm')</div>
    	<div id="content">
    		<div id="sub">#parse($sub)</div>
    		<div id="main">$screen_content</div>
    	</div>
    	<div id="footer">#parse('vm/layout/footer.vm')</div>
    </body>
</html>

$screen_content 는 자리 표시 자 에 해당 하 며,forward 의 대상 페이지 내용 이 이 내용 을 대체 합 니 다.
\#parse($sub):sub 위 치 는$sub 변 수 를 통 해 동적 으로 설정 할 수 있 음 을 나타 낸다.
또한'vm/layot/footer.vm','vm/layot/header.vm'두 파일 을 만 듭 니 다.
2、
WEB-INF/vm/user/profile.vm 를 만 드 는 것 은 다음 과 같 습 니 다.(이 페이지 가 사용자 의 자료 정 보 를 표시 하 는 데 사용 된다 고 가정 합 니 다)
 
#set($layout = "layout.vm")
#set($sub= "vm/user/sub.vm" )
A: What's your name?<br>
B: My name is $user.loginName!

이 파일 이 보통 내 vm 와 다른 점 은 앞의 두 마디 에 있 습 니 다.
첫 번 째 말 은 이 페이지 에서 어떤 레이아웃 기 를 사용 하 는 지 설정 합 니 다.
두 번 째 말 은 sub 의 값 을 설정 합 니 다.vm/user/sub.vm 파일 을 레이아웃 에 포함 시 키 는 데 사 용 됩 니 다.
"vm/user/sub.vm"파일 도 만 듭 니 다.
3.velocity.properties 파일 설정
velocity 를 사용 하려 면 일반적으로 velocity.propertes 를 설정 해 야 합 니 다.적어도 input.encoding 과 output.encoding 등 을 설정 해 야 합 니 다.이 파일 에 다음 코드 를 추가 합 니 다.
# Directory for layout templates,
#  relative to web application root directory
tools.view.servlet.layout.directory = vm/layout/

# Filepath of the default layout template
#  relative to the layout directory
#  !!!!!         :NOT relative to the root directory of the webapp!!!!
tools.view.servlet.layout.default.template =  layout.vm

4.웹.xml 설정 과 아래 의 차이 가 다음 과 같 지 않 은 지 확인 합 니 다.


	<servlet>
		<servlet-name>velocity</servlet-name>
		<servlet-class>
			org.apache.velocity.tools.view.servlet.VelocityLayoutServlet
		</servlet-class>

		<init-param>
			<param-name>org.apache.velocity.toolbox</param-name>
			<param-value>/WEB-INF/toolbox.xml</param-value>
		</init-param>
		<init-param>
			<param-name>org.apache.velocity.properties</param-name>
			<param-value>/WEB-INF/velocity.properties</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>velocity</servlet-name>
		<url-pattern>*.vm</url-pattern>
	</servlet-mapping>

5、서버 를 실행 하 세 요,
a)방문http://www.xxx.com/vm/user/profile.vm 효과 좀 봐.
b)vm/user/profile.vm 파일 로 돌아 가서
\#set($layot="layot.vm")효 과 를 제거 합 니 다.
효과 비교:
$layot 가 설정 한 profile.vm 파일 을 추가 하여 이 페이지 를 탐색 할 때 이 페이지 를 레이아웃 의 일부분 으로 자동 으로 바 꾸 고 header.vm,sub.vm,footer.vm 도 출력 합 니 다.$layot 설정 을 제거 하고 탐색 할 때 이 페이지 만 출력 하고 header.vm,sub.vm,footer.vm 을 출력 하지 않 습 니 다.
이런 기능 은 디 버 깅 과 작성 에 매우 편리 하 다.
이후 새로운 페이지 를 추가 할 때마다 첫 줄 에$layot 가 레이아웃 템 플 릿 을 가리 키 는 것 을 설정 하면 됩 니 다.(레이아웃 템 플 릿 의 경 로 를 주의 하 십시오.세 번 째 단 계 는 힌트 를 주 었 습 니 다)간단 한 레이아웃 기능 을 쉽게 가 질 수 있 습 니 다.
6.후 어:
자신 이 비슷 한 기능 을 실현 할 것 이 라 고 생각 하 다가 벨 로 시 티 공식 사 이 트 를 자세히 살 펴 보 니 블 로 시 티 가 이미 있 었 다.나 는 매우 좋다 고 생각한다.나의 요구 에 매우 부합된다.
따라서 Velocity 개발 시스템 을 사용 하거나 곧 사용 할 경우 layot 기능 을 강력 히 추천 합 니 다.
참고 자료
1、
http://velocity.apache.org/tools/devel/view/layoutservlet.html
2、
velocity 를 사용 하 세 요:$velocity Count 와 Tool 의 사용

좋은 웹페이지 즐겨찾기