Spring Boot项目访问template模板文件页面返回404

今天刚刚接触Spring Boot框架技术,安装网上的教程做了一个Hello World的测试项目,但是不知道为什么,访问静态资源和json数据都没问题,但是访问template模板界面的时候却不行,浏览器返回404错误代码。

项目路径截图
clipboard.png

在templates目录下添加了一个template模板文件:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head lang="en">
    <meta charset="UTF-8" />
    <title></title>
</head>
<body>
<h1 th:text="${host}">Hello World</h1>
</body>
</html>

最主要的Controller类:

package com.shanshan.start.controller;

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

@Controller
public class HelloController {

    @ResponseBody
    @RequestMapping("/hello")
    public String hello() {
        return "Hello World";
    }
    
    @RequestMapping("/w")
    public String index() {
//        map.addAttribute("host", "http://www.shanshan.com");
        return "world";
    }
}

页面报错:
图片描述

最后再申明一下!访问静态资源图片和@ResponseBody注解的json数据都是可以的!只有访问页面的时候不行!

补充一下,pom文件内容(只引入了web和thymeleaf)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.shanshan</groupId>
    <artifactId>start</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>start</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <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.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

隔天8.8再次补充:
昨天晚上回去在自己电脑上一样的流程新建了一个spring boot项目,可以正常运行没有上述问题。
今天早上在公司删除昨天建的项目重新构建,还是一样的问题不能访问。
代码已上传git,望大佬指点迷津
https://git.oschina.net/dmh54...

阅读 38k
5 个回答

最后解决了。
按照在Stack Overflow上一位外国朋友遇到的差不多的问题以及解答,说是有可能是maven引入的包有问题导致的。但是该问题无法通过在项目中清理后重新构建来修复(本人尝试无用),只能把配置的对应的maven m2目录清空,然后打开eclipse以后重新构建的时候让maven重新下载所需jar包才可以。

依赖了 thymeleaf jar 包吗?

看着没毛病。方便的话传一发工程到Git上?

遇到同样的问题。后来在pom文件里的<properties>标签下加了下面两行就好了

<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.1.1</thymeleaf-layout-dialect.version>
新手上路,请多包涵

application.properties里写
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏