当前位置: 首页 > 知识库问答 >
问题:

src/main/资源/模板下index.html上的Spring Boot Thymeleaf解析错误

马坚白
2023-03-14

我在学春靴。我正在学习一些在线教程,并尝试使用Spring工具套件IDE和Thymeleaf创建一个小型的登录/注册Spring Boot web应用程序。我在网上读到,Thymeleaf应该自动在Spring项目的src/main/resources/templates/文件夹下查找。

问题/错误:

org。百里香。例外情况。TemplateInputException:模板解析过程中发生错误(模板:“类路径资源[templates/index.html]”

原因:组织。阿托语法分析器。ParseException:无法解析为表达式:“”(模板:“索引”-第13行,第16列)

我把我的索引。src/main/resources/templates/index下的html。html与以下html代码

指数html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="ISO-8859-1">
    <title>Welcome to CodeJava Home</title>
    <link rel="stylesheet" type="text/css" href="/webjars/bootstrap/css/bootstrap.min.css" />
    <script type="text/javascript" src="/webjars/jquery/jquery.min.js"></script>
    <script type="text/javascript" src="/webjars/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
    <div class="container text-center">
        <h1>Welcome to CodeJava.net</h1>
        <h3><a th:href="">List of Users</a></h3>
        <h3><a th:href="">Register</a></h3>
        <h3><a th:href="">Login</a></h3>
    </div>
</body>
</html>

然后我有一个返回index.html视图的AppController类。我注意到它是使用@GetMap与空白"字符串,我假设应该指向根和扫描一个html文件与名称索引

package com.jordan.codejava.controllers;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import com.jordan.codejava.repos.UserRepository;

@Controller
public class AppController {

    @Autowired
    private UserRepository userRepo;
     
    @GetMapping("")
    public String viewHomePage() {
        return "index";
    }
}

UserRepository只是一个扩展JpaRepository的接口

public interface UserRepository extends JpaRepository<User, Long>{}

我甚至试图用@GetMapping(“/”@RequestMapping(“”@RequestMapping(value=“/”)替换@GetMapping(”),但仍然收到相同的错误消息。

我在网上搜索过,但仍然找不到解决方案。

在这种情况下,是否需要指定视图前缀?大概,

spring.mvc.view.prefix=/WEB-INF/views/

在应用程序中。属性文件?

如果有任何建议,我将不胜感激。非常感谢。

共有2个答案

孟俊晖
2023-03-14

本部分:

<a th:href="">

是无效的Thymeleaf表达式。

使用

只有这样Thymeleaf才会理解你。当你把

常培
2023-03-14

这不是一个有效的Thymeleaf表达式:

th:href=""

如果需要空值,可以只使用非Thymeleaf属性,而不使用thprefx:

href=""

或者如果你想让Thymeleaf生成一个空字符串,你可以使用这样的东西:

th:href="''"

但更典型的是,我希望看到完整的@{…} 表达式。

 类似资料:
  • 我刚刚开始使用springboot,我被这个问题卡住了。没有数据通过控制器。我只想跳转到“index.html”页面,这是一个模板,从bootstrap下载。 这是我的控制器。 index.html. 堆栈跟踪如下。 我想知道我的依赖关系有什么问题吗?

  • 我正在尝试打开我的html页面,但每当我尝试访问本地主机时,我都会遇到这些错误。 白标签错误页面 我将附上所涉及的文件: 家庭控制器: 用户域类: 索引.html:

  • 在我的应用程序中,我需要使用硬连线的html模板,我将通过将它们添加到和动态文本模板,我想在运行时存储在s中。 我的代码与此类似: 问题存在于实现ITemplateResolver的中。我试图使用处理字符串模板中给出的示例与thymeleaf 3,但它们似乎不再适用于当前版本的Spring。 如何从s解析模板?我使用SpringBoot2.2

  • 默认情况下,Maven根据标准目录布局检查resources文件夹。尽管最后一个罐子有问题。 它最终添加了src/main文件夹之外的所有资源,这使得我的JavaFX应用程序变得愚蠢。 因为我正在从src/main/resources文件夹加载图像,如下所示: 在最终的jar中,图像文件夹不在主文件夹下。我曾经有资源文件夹外面的文件夹,一切似乎都好,虽然我想遵循标准目录布局,所以我移动它。之前一切

  • 下面是index.html 它们在不同的文件夹中,但pathing应该工作,除非我只是错过了一些真正愚蠢的东西。