Gạch và Sitemesh trông khá phổ biến nhưng công cụ này thực sự cũ và trông khủng khiếp so với các nội dung tuyệt vời hiện tại, ví dụ: Ruby (ERB) hoặc PHP (Mở mẫu điện). Những công cụ template này cho phép tạo khuôn mẫu thoải mái (chèn biến, autoescaping tùy thuộc vào ngữ cảnh, lặp qua Iterables, truy cập các thuộc tính bean) và layout (ví dụ tiêu đề, footer và overriding và thêm vào một số phần được định nghĩa trong parent) mà không cần cấu hình khó khăn. cần thay đổi ngăn xếp hiện tại của bạn (ví dụ: khung web của bạn).JSP, Sitemesh và Tiles hardcore - bất kỳ lựa chọn thay thế nào?
Ví dụ parent.html:
<html>
<head>
<title>
<layout:part name="title">
Default title
</layout:part>
</title>
<layout:part name="head" />
</head>
<body>
<div class="menu" layout:part="menu">
default menu
</div>
<div class="content" layout:part="content" />
<div class="footer">
(c) me
</div>
</body>
</html>
Ví dụ child.html
<layout:extend file="parent.html">
<layout:fill name="title">
Custom title
</layout:fill>
<layout:fill name="contnet">
the content
{$var} from model
</layout:fill>
</layout:extend>
Tôi đang tìm Facelets tốt hơn, điều đó sẽ không yêu cầu tôi phải thay đổi toàn bộ stack - Tôi sẽ không thích ứng toàn bộ dự án với JSF hay Wicket chỉ để sử dụng các khung nhìn tốt hơn.
Công cụ mẫu không được yêu cầu bất kỳ servlet hoặc bộ lọc bổ sung nào (không có logic dựa trên URL). Tôi muốn sử dụng động cơ theo chương trình. Trường hợp sử dụng có thể là xác định ViewResolver tùy chỉnh trong Mùa xuân 3.
Sẽ là hoàn hảo nếu bố cục không được xác định trước trong tệp cấu hình. Điều đó không cần thiết nếu bạn chỉ định nghĩa khung nhìn cha mẹ trong tệp khuôn mẫu.
Khung có thể nằm trên cùng của JSP nhưng không phải. Lợi thế là khả năng sử dụng thẻ tag được cung cấp bởi các khung công tác khác (ví dụ: Spring).
Hoặc có thể mọi thứ đã có trong Sitemesh/Tiles nhưng cần nhiều cấu hình? Nếu bạn biết về bất kỳ cấu hình ví dụ nào cho phép đạt được tất cả các mục tiêu đã đề cập, hãy cho tôi biết về nó.
Câu hỏi liên quan: what alternatives exist to Sitemesh to help layout JSP/JSTL page footers/headers in a Spring MVC app? - câu hỏi của tôi cũng đề cập đến việc tạo khuôn mẫu và không giới hạn ở Spring Web MVC.
Tại sao bạn cho rằng Gạch 2 có kiểu cũ? Tôi đã bỏ qua ERB, nhưng có vẻ như bạn có thể đạt được các tính năng tương tự bằng cách sử dụng Tiles 2 và Velocity, chẳng hạn. Bạn cần gì? – sinuhepop
Yêu cầu đề xuất khung không được khuyến khích tại đây. Nếu bạn muốn [sửa] ra tất cả các yêu cầu như vậy, và làm cho câu hỏi này có thể được trả lời ở đây mà không cần nhấp vào off-site, hãy làm như vậy và gắn cờ để mở lại. Cảm ơn. – Will