Ответы пользователя по тегу Thymeleaf
  • Как показать уведомление с анимацией без перезагрузки встраницы после сохранения формы в Spring Boot?

    @postya Автор вопроса
    Нашёл библиотеку Toastr, всё работает так, как надо.
    Вот ,что имею на выходе:

    Метод,который сохраняет поля в БД:

    @PostMapping("/sketches/add")
        public String addSketch(
                                @Valid Sketch sketch,
                                BindingResult result,
                                RedirectAttributes redirectAttributes) {
    
            redirectAttributes.addFlashAttribute("action", "save");
            if (result.hasErrors()) {
                return "admin/add-sketch";
            }
           sketchRepository.save(sketch);
            return "redirect:/admin/sketches/add";
        }


    Подключение бибилотеки Toastr в html файле:

    <link rel="stylesheet" th:href="@{/libs/toastr/toastr.min.css}">
    
        <script th:src="@{/libs/jquery/jquery-3.4.1.min.js}"></script>
        <script defer th:src="@{/libs/toastr/toastr.min.js}"></script>
        <script defer th:src="@{/js/add-sketch.js}"></script>


    Настройки для библиотеки Toastr в отдельном файле add-sketch.js:

    /*TOASTR OPTIONS*/
    toastr.options = {
        "closeButton": false,
        "debug": false,
        "newestOnTop": false,
        "progressBar": false,
        "positionClass": "toast-bottom-right",
        "preventDuplicates": false,
        "onclick": null,
        "showDuration": "300",
        "hideDuration": "1000",
        "timeOut": "2000",
        "extendedTimeOut": "1000",
        "showEasing": "swing",
        "hideEasing": "linear",
        "showMethod": "fadeIn",
        "hideMethod": "fadeOut"
    };


    Вызов скрипта библиотеки в конце html файла:

    <script th:inline="javascript">
        $(document).ready(function () {
            var action = [[${action}]];
            if (action === 'save') {
                toastr["success"]("Success!")
            }
        });
    </script>
    Ответ написан
    Комментировать
  • Как подставить класс в Thymeleaf?

    @postya Автор вопроса
    Пока нашёл такое решение:

    Добавил ещё один url для редиректа в контроллере:

    @GetMapping("/home")
        public String home() {
            return "home";
        }
    
        @GetMapping("/")
        public String homePage() {
            return "forward:/home";
        }


    <ul class="header-links">
                <li th:class="${#httpServletRequest.requestURI.contains('/home')} ? 'link-active' : 'link-inactive'"><a th:href="@{/home}">Home</a></li>
                <li><a href="https://github.com/tttapa/Control-Surface" target="_blank">Get Library<i class="fab fa-github"></i></a></li>
                <li th:class="${#httpServletRequest.requestURI.contains('/examples')} ? 'link-active' : 'link-inactive'"><a th:href="@{/examples}">Sketch Examples</a></li>
                <li th:class="${#httpServletRequest.requestURI.contains('/tutorials')} ? 'link-active' : 'link-inactive'"><a th:href="@{/tutorials}">Video Tutorials</a></li>
            </ul>
    Ответ написан
    Комментировать