Нет «лучшего», но приятно знать, что JSP как технология представления уже предоставляет для этого тег <jsp:include>
. Э.Г.
<!doctype html>
<html lang="en">
<head>
<title>SO question 2158749</title>
</head>
<body>
<jsp:include page="menu.jsp" />
<h1>Content</h1>
</body>
</html>
где вы можете просто кодировать menu.jsp
, как будто это часть родительской страницы:
<ul>
<li><a href="home">Home</a></li>
<li><a href="faq">FAQ</a></li>
<li><a href="content">Content</a></li>
</ul>
Существует две "стандартные" альтернативы: директива @include
и тег JSTL <c:import>
.
Разница в том, что директива @include
включает страницу во время времени компиляции (таким образом, это произойдет только один раз), тогда как <jsp:include>
включает страницу во время времени выполнения который имеет то преимущество, что вы можете включить другой динамический контент).
Еще одно отличие <c:import>
состоит в том, что он включает в себя сгенерированный вывод страницы и, следовательно, не исходный код , как <jsp:include>
и @include
. Основное преимущество <c:import>
заключается в том, что вы можете таким образом включать внешние ресурсы. Э.Г.
<c:import url="http://google.com" />