springboot创建web项目 使用 jsp 和 thymeleaf+html 的不同 thymeleaf模板路径配置注意事项

1.如果该web项目使用jsp来呈现页面,或者项目(包括使用jsp或者html+thymeleaf)需要打包后在外部tomcat服务器上运行时,需要有webapp文件夹。如果使用idea创建springboot项目,是没有webapp文件夹的,因为springboot项目默认使用html+thymeleaf,且内置了tomcat,此时如果此项目需要在外部tomcat容器中运行需手动配置webapp文件夹,具体方法可百度。
jsp yml 配置:

server:
  port: 8090
  servlet:
    context-path: /     #项目根目录发布
spring:
  mvc:         #引入mvn配置
    view:
      prefix: /WEB-INF/     # /默认代表根目录 src/main/webapp
      suffix: .jsp

2.如果该web项目使用html和thymeleaf来呈现页面,则不需要再手动添加webapp文件夹,而是将 .html 文件存放到 src/main/resources文件夹下,
最好是放在 /templates 下,重点:如果使用thymeleaf模板引擎,不可将 .html 文件放在 webapp 文件夹下,否则会报异常:找不到模板。如图:
将html页面放在此文件夹下
thymeleaf yml配置:
也可以放在resources文件夹下的其它地方
3.webapp文件夹下一般有 static、WEB-INF两个文件夹,该文件夹在项目发布后,static文件夹中的文件是可以直接在浏览器端获取的(如:localhost:8080/static/xxxx.js),WEB-INF文件夹下的文件是不可以直接在浏览器获取的(通常配合controller使用,或是提供给项目中的其它文件使用)

4.项目搭建使用html+thymeleaf

package com.login.dlz.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/test")
public class TestController {
    @RequestMapping("/helloweb")
    @ResponseBody//向浏览器返回json对象
    public String helloWeb(){
        return "helloWeb";
    }
    @RequestMapping("/hello/{id}")//restful风格
    public String hello(@PathVariable int id){
        System.out.println("hello:"+id);
        //转发
        return "forward:helloweb";
    }
    @RequestMapping("/hello2")
    public String hello2(){
        System.out.println("hello2");
        //重定向
        return "redirect:helloweb";
    }
    @RequestMapping("index")
    public String index(){
        //请求页面的两种情况:
        // 1.返回值最前面的字符串想不带“/”斜杆,
        //   如:return "helloword";
        //   那么application.yml的thymeleaf配置为:
        //   thymeleaf.prefix= classpath:/templates/
        // 2.如果application.yml的thymeleaf配置为:
        //   thymeleaf.prefix= classpath:/templates
        //   即路径最后少配置了一根斜杆,那么表示页面的路径字符串最前面必须加一根斜杆,
        //   如:return "/helloword";
        return "helloword";
    }
}

5.pom.xml配置(html+thymeleaf)

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

6.thymeleaf模板路径配置注意事项

@RequestMapping("index")
    public String index(){
        //请求页面的两种情况:
        // 1.返回值最前面的字符串想不带“/”斜杆,
        //   如:return "helloword";
        //   那么application.yml的thymeleaf配置为:
        //   thymeleaf.prefix= classpath:/templates/
        // 2.如果application.yml的thymeleaf配置为:
        //   thymeleaf.prefix= classpath:/templates
        //   即路径最后少配置了一根斜杆,那么表示页面的路径字符串最前面必须加一根斜杆,
        //   如:return "/helloword";
        return "helloword";
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值