tôi không taglibs bình, Tôi đang sử dụng một thẻ JSP để làm một cái gì đó như thế này:Thymeleaf có giống như thẻ JSP không?
ChildPage.jsp:
<%@ page contentType="text/html" pageEncoding="UTF-8" %>
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:layout>
<jsp:attribute name="head">
<link href="css/custom.css" type="text/css" rel="stylesheet"/>
</jsp:attribute>
<jsp:attribute name="scripts">
<script src="js/custom.js"></script>
</jsp:attribute>
<jsp:body>
<p>This is from the child page</p>
</jsp:body>
</t:layout>
layout.tag :
<%@ tag description="Layout template" pageEncoding="UTF-8" %>
<%@ attribute name="head" fragment="true" %>
<%@ attribute name="scripts" fragment="true" %>
<!DOCTYPE html>
<html lang="en">
<head>
<link href="css/main.css" type="text/css" rel="stylesheet"/>
<jsp:invoke fragment="head"/>
</head>
<body>
<div id="body">
<p>This is from the parent or "layout"</p>
<jsp:doBody/>
</div>
<div id="footer">
<script src="js/main.js"></script>
<jsp:invoke fragment="scripts"/>
</div>
</body>
</html>
Khi render:
<!DOCTYPE html>
<html lang="en">
<head>
<link href="css/main.css" type="text/css" rel="stylesheet"/>
<link href="css/custom.css" type="text/css" rel="stylesheet"/>
</head>
<body>
<div id="body">
<p>This is from the parent or "layout"</p>
<p>This is from the child page</p>
</div>
<div id="footer">
<script src="js/main.js"></script>
<script src="js/custom.js"></script>
</div>
</body>
</html>
này cho phép tôi để bao gồm các kịch bản trong phần tiêu đề của JSP từ cả cách bố trí và các trang con. Tương tự cho cơ thể và chân trang.
Tôi đã đọc qua tài liệu/ví dụ Thymeleaf nhưng có thể tôi không hiểu chính xác vì có vẻ như tôi không thể làm những gì tôi đang cố gắng đạt được.
Lý do tại sao tôi đã "đảo ngược" những gì có vẻ như bao gồm đơn giản là mỗi trang mà tôi đã bao gồm một số tập lệnh nhất định và phần tiêu đề, nhưng các trang con của tôi cũng có các tập lệnh được nhập và bản định kiểu được đưa vào.
Tôi có thể đạt được điều này bằng cách nào đó không? Tôi có làm điều này sai không?
bạn không muốn 'th: replace'? như '
' –@ robertotomás Tôi không muốn thay thế tất cả nội dung bên trong nút '
' của HTML, tôi muốn hợp nhất nội dung. – dkanejsTôi thực sự không hiểu những gì bạn đang làm .. Tôi đoán nếu ví dụ của bạn có nhiều 'jsp: gọi fragments' nó sẽ khác nhau, nhưng trong trường hợp bạn cung cấp nó thực sự không phải là một cái gì đó bạn couldnt làm với thay thế đơn giản. –