Да, вы правы, вам нужен JS. Советую воспользоваться Vue, так как он прост в использовании и достаточно мощный. В целом последовательность такова:
Разобраться с JS
Разобраться с Vue
Немного разобраться с NodeJS
Немного погрузиться в Webpack
Выбрать какой-нибудь готовый набор элементов (например Material Design, можно и свои написать, тогда либо CSS, SCSS, либо TailwindCSS и т.д.)
Написать SPA
Объединить с Java бэкендом — тут я не мастер разъяснения давать, так как не специалист по Java. Примерно представляю, что есть два пути:
1) У Spring есть способ самому отдавать js и css файлы
2) Можно поднять NodeJS сервер (благо это очень просто) и нужные роуты перенаправлять к нему (возможно через обратный прокси, например Nginx)
В целом, всё очень легко гуглится. Так что ссылки я сюда громоздкие пихать не буду.
UPD.
Разве что вот эту:
https://www.w3schools.com