Да, это выполнимо, так как Angular может самозагрузиться со страницы JSP. Это может быть отличным способом сохранить текущее приложение при переходе на Angular. Таким образом, вам потребуется меньше обслуживания старых вкладок, поскольку они могут быть удалены быстрее, в то время как вкладки, которые остаются в JSP, могут продолжать работать.
Для начала включите корень приложения Angular и все пакеты где-нибудь в JSP заменяемых вкладок.
<app-root></app-root>
<!-- Angular must load AFTER the app-root selector for bootstrapping -->
<% if( request.getHeader("Host").equals("localhost:4200") ) { %>
<!-- dev bundles, to allow the normal angular workflow on localhost -->
<script src="inline.bundle.js"></script>
<script src="polyfills.bundle.js"></script>
<script src="styles.bundle.js"></script>
<script src="vendor.bundle.js"></script>
<script src="main.bundle.js"></script>
<% } else { %>
<!-- production bundles -->
<script src="inline.bundle.js?ver=${maven.build.timestamp}"></script>
<script src="polyfills.bundle.js?ver=${maven.build.timestamp}"></script>
<script src="main.bundle.js?ver=${maven.build.timestamp}"></script>
<% } %>
Предполагается, что вы создаете свой проект Java с помощью maven, поэтому отключите управление версиями файлов, которое делает сборка ng, и позвольте maven обрабатывать именование версий (чтобы избежать проблем с кешем при выпуске версий). В противном случае вам нужно будет найти способ вставлять сгенерированные Angular имена файлов в ваши JSP для каждой сборки.
ng build --prod --output-hashing none
После того, как корень приложения загружен, его можно переместить с помощью другого javascript, если вы убедитесь, что он не удален из DOM.