Я хочу создать шаблон jsp, который похож на blade.php.
Это пример страницы, которую я хочу создать из JSP. Я прошел через теги в шаблоне JSP. Как я могу создать следующий шаблон лезвия, используя jsp.
default.blade.php
<!DOCTYPE html>
<html lang="en">
@include('dashboard.includes.head')
<body>
<div id="wrapper">
<div id="main-container">
<!-- BEGIN TOP NAVIGATION -->
@include('dashboard.includes.nav-top')
<!-- END TOP NAVIGATION -->
<!-- BEGIN SIDE NAVIGATION -->
@include('dashboard.includes.nav-side')
<!-- END SIDE NAVIGATION -->
<!-- BEGIN MAIN PAGE CONTENT -->
<div id="page-wrapper">
<!-- BEGIN PAGE HEADING ROW -->
<div class="row">
<div class="col-lg-12">
<!-- BEGIN BREADCRUMB -->
@include('dashboard.includes.breadCrumb')
<!-- END BREADCRUMB -->
<div class="page-header title">
<!-- PAGE TITLE ROW -->
@yield('pageHeader')
</div>
</div><!-- /.col-lg-12 -->
</div><!-- /.row -->
<!-- END PAGE HEADING ROW -->
<div class="row">
<div class="col-lg-12">
<!-- START YOUR CONTENT HERE -->
@yield('pageContent')
<!-- END YOUR CONTENT HERE -->
</div>
</div>
<!-- BEGIN FOOTER CONTENT -->
@include('dashboard.includes.footer')
<!-- END FOOTER CONTENT -->
</div><!-- /#page-wrapper -->
<!-- END MAIN PAGE CONTENT -->
</div>
</div>
@include('dashboard.includes.scripts')
</body>
</html>
JSP похожи на PHP в том отношении, что все, что там и не имеет особого значения, печатается буквально. Таким образом, большая часть вашего файла должна быть скопирована в JSP как есть. Я вижу два типа операторов управления: @include и @yield.
Что касается @include: в JSP у вас есть два способа сделать это: <% @ include …> и < JSP: включить>. Первый включает статически, так что как будто включаемый файл был буквально на позиции включения. Второй включает в себя динамически, то есть через внутренний HTTP-запрос. Оба имеют свои преимущества и недостатки. Первая версия имеет лучшую производительность, но вы не можете использовать рекурсивные включения. Подробности объясняются в другом месте, посмотрите некоторые учебные пособия или прочитайте в StackOverflow, например, Вот: https://www.tutorialspoint.com/jsp/include_directive.htm и здесь: Включить другой файл JSP
Что касается @yield: Поскольку я не знаю blade, я могу только догадываться, что он делает, но, похоже, он отображает некоторую часть страницы на основе данных из другого источника. Вот где все начинается в зависимости от структуры, с которой вы работаете. Если это обычный JSP (в настоящее время он почти не используется), вы можете создать бин, который предоставляет значения для вас. Проверьте, например, здесь для получения дополнительной информации: https://www.javatpoint.com/jsp-useBean-action .
Если вы работаете над некоторыми фреймворками, вам следует прочитать их документацию о том, как создать так называемую модель (https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) и как получить к нему доступ из вашего JSP. Например, в Spring-MVC вы сохраняете объекты Java в модели, которую вы можете вставить в обработчик запросов, используя типизированный аргумент Model или ModelMap. Эти значения затем доступны из JSP с помощью $ {nameofmodelattribute} или $ {nameofmodelattribute.property}. Проверьте здесь для примера контроллера и дальнейшего чтения: https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-controller
Если вы дадите больше подробностей об используемых Java-фреймворках, возможно, кто-то может помочь с более конкретными ответами на ваш вопрос. В общем, есть много ресурсов обо всем, что связано с JSP.
Поскольку вы кажетесь новичком, я бы порекомендовал вам начать учебник с основанной на Java инфраструктуры MVC по вашему выбору, и, начиная с их рабочих примеров, вы можете начать добавлять свой собственный код, а не открыто спрашивать, как преобразовать ваш шаблон.
Других решений пока нет …