Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >无法在index.html (thymeleaf+springboot)之外导航

无法在index.html (thymeleaf+springboot)之外导航
EN

Stack Overflow用户
提问于 2021-11-17 06:02:40
回答 4查看 69关注 0票数 0

我正在使用springboot + thymeleaf来创建一个简单的网站。

这是我的项目,用STS创建的Maven like:

CSS文件夹是重复的,但我想这不是问题。当我将其作为SpringBoot应用程序运行时,一切工作正常。我的index.html页面就会显示出来,CSSJS都能很好地工作。当我尝试访问index.html中的th:href之后的新页面(hello.html)时,出现了问题。这是html部分:

代码语言:javascript
代码运行次数:0
复制
<html xmlns:th="http://www.thymeleaf.org"> //For thymeleaf
<head> 
    <title> X BIG DEALS </title>
    <link rel="stylesheet" type="text/css" media="all"  
      href="/css/index/index.css" th:href="@{/css/index/index.css}" />
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/
bootstrap.min.css"  integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/
iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> //just bootstrap
    </head>

<header id="HD" class="header">
        <a class="logo">X4ALL</a>
        <div class="header-right">
            <a th:href="@{/hello}" id = "HELLO" class="active">Hello</a> //PROBLEM HERE I SUPPOSE
        </div>
    </header>

当我单击此链接时,将显示一个包含说明的TomCat错误页面:Error 404 - The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

然后我检查了spring,发现了这个错误:

代码语言:javascript
代码运行次数:0
复制
2021-11-17 14:28:19.694 ERROR 90008 --- [nio-8080-exec-5] o.a.c.c.C.[Tomcat].[localhost]           : Exception Processing ErrorPage[errorCode=0, location=/error]

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template [error], template might not exist or might not be accessible by any of the configured Template Resolvers

所以Thymeleaf有一个错误,但我不知道如何移动,这是HelloController

代码语言:javascript
代码运行次数:0
复制
package it.uniroma3.siw.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;


@Controller
public class HelloController  {
    @RequestMapping(value= "/hello", method = RequestMethod.GET)
    public String loginPage() {
        return "hello" ;
    }
}

我也试图返回hello.html,但是什么都没有改变。在作为Springboot应用程序运行之前,我做了一个Maven CleanMaven Install

也许有帮助,application.properties

代码语言:javascript
代码运行次数:0
复制
#==================================
# = Datasource configuration
#==================================
spring.jpa.database=POSTGRESQL
spring.sql.init.platform=postgres
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost/products
spring.datasource.username=postgres
spring.datasource.password=postgres
#==================================
# = Webserver configuration
#==================================
server.port= 8080
server.error.whitelabel.enabled=false
server.error.include-stacktrace=always

#==================================
# = Thymeleaf configurations
#==================================
spring.thymeleaf.check-template-location=true
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.cache=false
spring.thymeleaf.encoding=UTF-8
server.servlet.context-path=/

#==================================
# = Logging configuration
#==================================
logging.level.org.hibernate.SQL=debug
logging.level.org.hibernate.type.descriptor.sql=trace
logging.level.org.springframework.web=INFO
logging.level.it.uniroma3.siw.spring=DEBUG

#==================================
# = Misc configuration
#==================================
spring.messages.basename=messages/message
##==================================
# = Security configuration
#==================================
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration

附言:我认为没有控制器来处理index.html,因为在开始的时候我没有创建一个控制器,但是默认页面已经是index.html了,并且它可以工作。然后我创建了一个接受"/"MainController,但我认为它不起作用。

应用程序文件:

代码语言:javascript
代码运行次数:0
复制
package it.uniroma3.siw.main;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
//@ComponentScan(basePackages = "it.uniroma3.siw.*")
public class ProgettoApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProgettoApplication.class, args);
    }

}
EN

回答 4

Stack Overflow用户

发布于 2021-11-17 06:38:25

尝尝这个

代码语言:javascript
代码运行次数:0
复制
@SpringBootApplication
@ComponentScan(basePackages = "it.uniroma3.siw.*")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
票数 0
EN

Stack Overflow用户

发布于 2021-11-17 06:38:35

我认为你错误配置了你的application.properties:

代码语言:javascript
代码运行次数:0
复制
spring.thymeleaf.prefix=classpath:/templates/ 

无论如何,我认为你可以在application.properties中删除所有与胸腺叶相关的配置,因为Spring Boot默认情况下会处理这些问题!

票数 0
EN

Stack Overflow用户

发布于 2021-11-17 06:48:29

要呈现新页面,可以在layout.html中设置一个菜单,其中包含以下链接:

代码语言:javascript
代码运行次数:0
复制
<header th:fragment="site-header">
    <a href="index.html" th:href="@{/}"></a>
    <a href="#" style="color: white" th:href="@{/}">Home</a>
    <a href="#" style="color: white" th:href="@{/add}">Add Items</a>
    <a href="#"  style="color: white" th:href="@{/items}">Get Items</a>
</header>

THis会给你一个类似如下的菜单:

现在设置对应于每个链接的相应控制器方法。例如,Get Items调用此控制器方法:

代码语言:javascript
代码运行次数:0
复制
 @GetMapping("/add")
    fun designer(): String? {
        return "add"
    }

这将出现在模板下的add.html页面上:

您可以将这样的类与@SpringBootApplication一起使用,这样Spring就可以找到主类。

代码语言:javascript
代码运行次数:0
复制
package com.example;

   import org.springframework.boot.SpringApplication;
   import org.springframework.boot.autoconfigure.SpringBootApplication;

   @SpringBootApplication
   public class SecureWebApp {

    public static void main(String[] args) throws Throwable {
        SpringApplication.run(SecureWebApp.class, args);
    }
}

与旧的Spring MVC框架相比,这是一个巨大的改进,在旧的Spring MVC框架中,您必须处理大量的配置文件。更多详细信息请点击此处:

https://spring.io/guides/gs/spring-boot/

这就是在Spring启动应用程序中导航页面的方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70005804

复制
相关文章
MacOS 下如何安装 gnu 版本的 sed
原因是由于 MacOS 下默认的 sed 和 Linux 下是不一样的,导致 -i 无法正确识别,通常的做法是安装一个 gnu-sed 已替换原本的 sed 命令
LinkinStar
2024/09/03
1480
pycharm哪个版本_pycharm版本选择
社区版: 可以供广大python爱好者免费使用,具备常用的python库,可以实现基本的python用法,可以用于试验在工作中出现的错误
全栈程序员站长
2022/09/27
4.5K0
pycharm哪个版本_pycharm版本选择
pycharm选哪个版本_pycharm版本区别
在pycharm中点击file->setting->project->project Interpreter。
全栈程序员站长
2022/09/27
1.1K0
pycharm选哪个版本_pycharm版本区别
php用哪个版本_php什么版本好
1.1 autoload的使用;当在代码中使用一个未定义的类的时候,该函数就会被调用
全栈程序员站长
2022/09/20
4.3K0
办公软件有哪些版本,哪个版本office好用?
目前最新的版本就是office2021; 具体哪个版本好用主要看你的用途和系统匹配;
用户10307898
2023/02/07
8.2K0
ERP系统用的哪个版本?
声明:本文仅代表原作者观点,仅用于SAP软件的应用与学习,不代表SAP公司。注:文中所示截图来源SAP软件,相应著作权归SAP所有。
齐天大圣
2022/11/28
2.6K0
ERP系统用的哪个版本?
学习 Java,使用哪个版本最好
工欲善其事,必先利其器。我们要学习和使用 Java 语言,就需要搭建好 Java 的开发环境,边学习知识,边实践编码,可以更好的体会 Java 这门语言的精髓。
蜗牛互联网
2021/03/01
2.1K0
学习 Java,使用哪个版本最好
office下载哪个版本比较好
哪个版本的office最好用?Office是我们经常使用的办公工具软件,到现在有很多版本。很多人都想知道哪个版本的office最好用。下面为大家推荐Office版。让我们看一看。
用户9693436
2022/07/03
4.1K0
MGR用哪个版本?5.7 vs 8.0
前几天有人问:“8.0的MGR与5.7相比较,有哪些不一样的地方?”,在这篇文章里,将通过增加的系统变量说明一下MySQL8.0在MGR上的变化。
MySQLSE
2020/09/28
1.4K0
MGR用哪个版本?5.7 vs 8.0
uniqueidentifier转换_unique函数哪个版本有
uniqueidentifier数据类型是16个字节的二进制值,应具有唯一性,必须与NEWID()函数配合使用。
全栈程序员站长
2022/10/04
5280
Python初学者应该选择哪个版本
目前,根据数据显示,使用Python2.xd 开发者站63.7%,而使用Python3.x的用户站36.3%,由此可见使用使用Python2.x的用户还是占多数。2014年,Python的创始人宣布将Python2.7支持时间延长到2020年,那么初学者应该选择什么版本呢?目前建议初学者选择Python3.x版本 1、目前,使用Python3.x是大势所趋 2、Python3.x在Python2.x的基础上做了功能升级 3、Python3.x和Python2.x思想基本是共通的 当然选择Python3.x也会有缺点,那就是很多扩展库的发行总是滞后于Python的发行版本,甚至目前还有很多库不支持Python3.x。因此,在选择Python时候,一定要先考虑清楚自己的学习目的,例如,打算做哪方面的开发、需要用到哪些扩展库,以及扩展库支持的最高Python版本等。明确这些问题后再做出适合自己的选择。 中文编程参考资料
py3study
2020/01/07
1.7K0
皕杰报表(关于怎么查看是哪个版本)
3)、在META-INF文件夹下MANIFEST.MF里查看Version和label值。
用户10133222
2022/11/11
6510
JDK 11都有了,你还在用哪个版本?
  JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境。(JVM+Java系统类库)和JAVA工具。   没有JDK的话,无法编译Java程序(指java源码.java文件),如果想只运行Java程序(指class或jar或其它归档文件),要确保已安装相应的JRE。
程序员云帆哥
2022/05/12
9470
JDK 11都有了,你还在用哪个版本?
哪个版本的gcc才支持c11
(而我此处的eglibc 2.17,和那人的glibc-2.16.0,都是需要支持c11的gcc的)
bear_fish
2018/09/19
7.9K0
哪个版本的gcc才支持c11
查询mysql版本号命令_怎么看自己mysql是哪个版本
+————+ | version() | +————+ | 5.7.23-log | +————+ 1 row in set (0.12 sec)
全栈程序员站长
2022/11/08
3K0
微软史上最成功的操作系统是哪个版本?
到现在为止个人还是觉得微软最成功的的操作系统还是XP系统,现在很多人还在使用着这个版本,只不过由于软件的支持力度问题,很多软件已经运行不起来了,说到微软的操作系统的演化史其实就是科技技术的进步史,最初的微软dos系统基本上纯正命令行的时代,后来有了图形界面,然后是飞速的体验时代。
程序员互动联盟
2019/07/04
3.5K0
微软史上最成功的操作系统是哪个版本?
做开发环境用哪个版本的win服务器?
做开发环境的服务器,那么就选择win2008,在win2008当中,整理了一下的版本:
习惯说一说
2019/08/01
5.1K0
做开发环境用哪个版本的win服务器?
python3 软连接_python3哪个版本好用
在ubuntu下面发现pip的默认版本指向的是python3.6,而因项目需要利用Python2.7.
全栈程序员站长
2022/09/27
9250
GNU风格的版本号管理
项目初版本时,版本号可以为 0.1 或 0.1.0, 也可以为 1.0 或 1.0.0,如果你为人很低调,我想你会选择那个主版本号为 0 的方式; 当项目在进行了局部修改或 bug 修正时,主版本号和子版本号都不变,修正版本号加 1 当项目在原有的基础上增加了部分功能时,主版本号不变,子版本号加 1,修正版本号复位为 0,因而可以被忽略掉 当项目在进行了重大修改或局部修正累积较多,而导致项目整体发生全局变化时,主版本号加 1 另外,编译版本号一般是编译器在编译过程中自动生成的,我们只定义其格式,并不进行人
随心助手
2019/12/19
1.2K0
​【译】哪个版本的java性能最佳?结论可能超出你想像……
众所周知,Java在不同软件版本中的性能可能存在差异,并且这种差异会受到许多因素的影响。
Masutaa大师
2023/08/21
4260
​【译】哪个版本的java性能最佳?结论可能超出你想像……

相似问题

哪个版本的X引入了特征Y?

40

如何确定要安装哪个内核版本?

10

如何确定我正在构建的RHEL的哪个版本?

20

libvirt支持哪个版本的VBOX?

10

哪个版本的unix来自shell?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文