내 뷰를 구성하는 방법을 선택하려고합니다 (spring-mvc를 사용하지만 그다지 중요하지 않습니다)
내가보기에 6 가지 옵션이 있습니다 (상호 배타적이지는 않지만).
- 타일
- Sitemesh
- Freemarker
- 속도
<jsp:include>
<%@ include file="..">
타일 과 Sitemesh 를 그룹화 할 수 있습니다. Freemarker 와 Velocity도 마찬가지 입니다. 이 토론의 문제가 아닌 각 그룹 내에서 어느 것을 사용할 것인지에 대한 충분한 질문과 토론이 있습니다.
이것은 흥미로운 읽기 이지만 타일을 사용하도록 설득 할 수는 없습니다.
내 질문은- 이 프레임 워크가 <@ include file="..">
JSTL 로 제대로 수행 할 수없는 것을 제공하는 것입니다 . 요점 (일부는 기사에서 발췌) :
머리글 및 바닥 글과 같은 페이지의 일부를 포함하면 다음과 같은 차이점이 없습니다.
<%@ include file="header.jsp" %>
과
<tiles:insert page="header.jsp" />
제목, 메타 태그 등과 같은 헤더에 매개 변수를 정의합니다 . 이것은 특히 SEO 관점에서 매우 중요합니다. 템플릿 옵션을 사용하면 각 페이지에서 정의해야하는 자리 표시자를 간단히 정의 할 수 있습니다. 그러나 (포함 페이지에서) 및 (포함 된 페이지에서 ) 사용하여 JSTL 로 jsp에서 할 수 있습니다.
<c:set>
<c:out>
레이아웃 재구성 -메뉴 위로 이동 경로를 이동하거나 다른 측면 패널 위로 로그인 상자를 이동하려는 경우. 페이지 포함 (jsp 포함)이 제대로 구성되지 않은 경우 이러한 경우 모든 단일 페이지를 변경해야 할 수 있습니다. 그러나 레이아웃이 지나치게 복잡하지 않고 일반적인 것을 머리글 / 바닥 글에 넣으면 걱정할 필요가 없습니다.
공통 구성 요소와 특정 콘텐츠 간의 결합 -나는 이것에 대한 문제를 찾지 못했습니다. 일부 조각을 재사용하려면 머리글 / 바닥 글이없는 페이지로 이동하고 필요한 곳에 포함합니다.
효율성 -
<%@ include file="file.jsp" %>
한 번 컴파일되기 때문에 다른 무엇보다 효율적입니다. 다른 모든 옵션은 여러 번 구문 분석 / 실행됩니다.복잡성 -모든 비 jsp 솔루션에는 추가 xml 파일, 추가 포함, 전 처리기 구성 등이 필요합니다. 이것은 학습 곡선이며 더 많은 잠재적 인 실패 지점을 도입합니다. 또한 지원 및 변경이 더 지루합니다. 무슨 일이 일어나고 있는지 이해하기 위해 여러 파일 / 구성을 확인해야합니다.
자리 표시 자 -속도 / 자유 마커가 JSTL보다 더 많은 것을 제공합니까? JSTL에서 플레이스 홀더를 입력하고 모델 (컨트롤러에 의해 요청 또는 세션 범위에 배치됨)을 사용하여 이러한 플레이스 홀더를 채 웁니다.
따라서 일반 JSP 대신 /에 추가하여 위의 프레임 워크 중 하나를 사용해야한다고 설득하십시오.