spring-boot-thymeleaf-starter - "Путь кругового обзора [посадка], проверьте настройку ViewResolver! Ошибка! - PullRequest
0 голосов
/ 22 мая 2019

Я реализовал сервис-провайдер saml-adfs, используя spring-security-saml2.Проверка подлинности SAML-ADFS происходит правильно.После аутентификации я пытаюсь перенаправить его на целевую страницу, на которой есть несколько переменных, таких как UserID, динамически заполняющихся на основе зарегистрированной пользовательской информации.Для рендеринга html-страниц я использую lib-spring-startup-thymeleaf lib.Я просмотрел различные статьи и сделал ниже конфиги.Все мои html-файлы присутствуют в src / main / resources / templates.

Я получаю "Путь к круглому виду [лендинг], проверьте вашу настройку ViewResolver! Ошибка.

If I change it to a static html page, which is present in src/main/resources/static folder, then it is loading the content.

Please guide me how I can resolve this issue. I have dependency of spring-boot-starter-web and spring-boot-starter-thymeleaf in my build.gradle



landing.html page

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
    <head>
        <title>Landing!</title>
    </head>
    <body>
        <h1>You are logged as <span th:text="${username}">null</span>!</h1>
        <p>
            <a th:href="@{/saml/logout}">Global Logout</a><br/>
            <a th:href="@{/saml/logout?local=true}">Local Logout</a>
        </p>
    </body>
</html>

@Controller
public class LandingController {

    @RequestMapping("/landing")`enter code here`
    public String landing(@CurrentUser User user, Model model) {
        model.addAttribute("username",  user.getUsername());
        return "landing";
    }

1 Ответ

0 голосов
/ 22 мая 2019

Сначала убедитесь, что ваш распознаватель представлений настроен правильно. Попробуйте настроить преобразователь представлений тимилфайва следующим образом:

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Bean
    public ClassLoaderTemplateResolver templateResolver() {

        var templateResolver = new ClassLoaderTemplateResolver();

        templateResolver.setPrefix("templates/");
        templateResolver.setCacheable(false);
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode("HTML5");
        templateResolver.setCharacterEncoding("UTF-8");

        return templateResolver;
    }

   @Bean
   public SpringTemplateEngine templateEngine() {
       SpringTemplateEngine templateEngine = new SpringTemplateEngine();
       templateEngine.setTemplateResolver(templateResolver());
       templateEngine.setTemplateEngineMessageSource(messageSource());
       return templateEngine;
   }

   @Bean
   public ViewResolver viewResolver() {
       var viewResolver = new ThymeleafViewResolver();   
       viewResolver.setTemplateEngine(templateEngine());
       viewResolver.setCharacterEncoding("UTF-8");
       return viewResolver;
    }
}

Это базовая конфигурация, и вы можете изменить расположение ваших шаблонов и т. Д. В этой конфигурации в соответствии сструктура вашего проекта.

Когда вы предоставляете эту конфигурацию, решатель Thymeleafview будет обрабатывать разрешение URI для доступа к html, который должен решить вашу проблему.

...