temleaf问题

这篇博客讲述了在SpringBoot项目中整合Thymeleaf模板引擎和Security权限框架时遇到的HTML模板未生效问题。开发者检查了依赖、模板路径和配置,最后发现是资源导入配置不正确导致的。修复资源导入后,问题得到解决。
摘要由CSDN通过智能技术生成

今天学习新知识把的所遇问题解决一下。
spring boot整合temleaf和security时temleaf的HTML模板未生效问题。
application.yml

<dependencies>
        <!--security 权限框架-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!--thymeleaf模板引擎-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.2</version>
        </dependency>
        <!--mybatis plus 代码生成器依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.2</version>
        </dependency>
        <!-- 热启动部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

        <!-- 引入druid 数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.22</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--swagger接口 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>20.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

webconfig相当于springmvc

@Override
    public void addViewControllers(ViewControllerRegistry registry) {
        //classpath:/templates
        registry.addViewController("/").setViewName("redirect:/login");
        registry.addViewController("/login").setViewName("login");

    }

security配置

protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/","/login").permitAll();//设置不需要认证的路径
        http.formLogin().loginPage("/login.html") //自定义页面
                .loginProcessingUrl("/user/userLogin") //登录访问路径
                .defaultSuccessUrl("/index").permitAll()//登录成功到什么页面
                .and().csrf().disable();//关闭csrf防护
    }

模板目录:
在这里插入图片描述

错误页面:
在这里插入图片描述
Error resolving template [login], template might not exist or might not be accessible by any of the configured Template Resolvers(模板未配置或者未生效)
看了xml文件,依赖是引入了的,temleaf默认路径也是对的,会是哪里的问题呢。未生效但确实有,就说明是没找到,那么试试视图解析器的绝对路径。

public void addViewControllers(ViewControllerRegistry registry) {
        //classpath:/templates
        registry.addViewController("/").setViewName("redirect:classpath:/templates/login");
        //registry.addViewController("/").setViewName("redirect:/login");
        registry.addViewController("/login").setViewName("login");

    }

结果还是有错误,所以应该不是这里的问题。
又去看查又去看,发现了不同点,pom文件的资源导入。

           <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
                <filtering>false</filtering>
            </resource>

这么一改是所有资源到引入了。试了一下,确实是这的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值