【问题标题】:Spring Boot Annotation RoutingSpring Boot 注解路由
【发布时间】:2018-08-12 21:24:25
【问题描述】:

我是 Spring 框架的新手,我遇到了映射的下一个问题:

我创建了一个名为 HomeController 的控制器和一个名为 index.html 的视图。

我将注解@Controller 放在类HomeController 的名称上方,并创建了一个方法bienvenido,并在其中编写了上面的注解@RequestMapping("/bienvenido")

问题是,尽管我尝试重新运行服务器并清理缓存,但我永远无法通过 localhost:port/bienvenido 访问 index.html。但是如果我只写 localhost:port/,那么 index.html 就会显示出来。

我正在查找信息,每个人都使用这种方式或类似方式来执行此操作,我不明白发生了什么。

这是我的课程和我的 html 文件:

package controllers;

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


@Controller
public class HomeController {

    @RequestMapping("/bienvenido")
    public String bienvenido() {
        return "index";
    }

}

HTML:

<!DOCTYPE html>
<html>
    <head>
    <meta charset="ISO-8859-1">
    <title>Insert title here</title>
</head>
<body>
    <h1>Bienvenido!</h1>

</body>

提前谢谢你。

【问题讨论】:

  • 你能展示你的包结构吗?您的主(BootApplication)类是否正确扫描了您的@Controller
  • 您已经在控制器包中定义了 HomeController。您的主类是否也在控制器中定义。如果不是,您需要在主类中指定您的基类。如果可能,添加项目结构
  • 嗨,这是我的包结构:com.learning.bienvenido -BienvenidoApplication.java 控制器 -HomeController 这是我的主类包 com.learning.bienvenido;导入 org.springframework.boot.SpringApplication;导入 org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication 公共类 BienvenidoApplication { public static void main(String[] args) { SpringApplication.run(BienvenidoApplication.class, args); } } 我没有做任何配置。
  • 当您运行 localhost:port/ 时,它显示的是您的索引页面还是另一个索引页面?如果是你的索引页,你有没有@RequestMapping("/");在某处或在配置文件中定义?

标签: java spring spring-boot routing annotations


【解决方案1】:

看了我的项目一段时间后,我才意识到我正在从主包中创建包。我的意思是:控制器包只命名为“controllers”而不是“com.learning.bienvenido.controllers”。

谢谢大家!

【讨论】:

    猜你喜欢
    • 2020-02-11
    • 2020-10-25
    • 2019-09-27
    • 2015-11-17
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多