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

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

项目路径截图
【Java】Spring Boot项目访问template模板文件页面返回404

在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";

}

}

页面报错:
【Java】Spring Boot项目访问template模板文件页面返回404

最后再申明一下!访问静态资源图片和@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...

回答

最后解决了。
按照在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

以上是 【Java】Spring Boot项目访问template模板文件页面返回404 的全部内容, 来源链接: utcz.com/a/86475.html

回到顶部