下午好!我开始 Spring 学习,我遵循教程相同的方式,但它返回一个错误:
文件夹结构:
奇怪的是:如果我将“EventoController.java“插入到br.com.SpringApp.SpringApp中,它将正常工作。
package br.com.SpringApp.SpringApp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringAppApplication {
public static void main(String[] args) {
SpringApplication.run(SpringAppApplication.class, args);
}
}
。
package br.com.SpringApp.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class EventoController {
@RequestMapping("/cadastroEvento")
public String form() {
return "evento/formEvento";
}
}
根据请求,我将添加pom.xml
<?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>br.com.SpringApp</groupId>
<artifactId>SpringApp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SpringApp</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.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-devtools</artifactId>
<scope>runtime</scope>
</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条答案
按热度按时间t30tvxxf1#
确保您的主类位于其他类之上的根包中。
当你运行一个Sping Boot 应用程序时,(比如一个标注了@SpringBootApplication的类),Spring只会扫描你的主类包下面的类。
你的声明是这样的
**
package br.com.SpringApp.SpringApp;
**在此主类(即SpringAppApplication)内**
package br.com.SpringApp.SpringApp.controller;
**控制器的名称,例如EventoController和indexController**
package br.com.SpringApp.SpringApp.model;
**您的型号名称,例如Evento在此之后,清理您的项目,并重新运行Spring Boot 应用程序;
xtupzzrd2#
解决方法:如果你在Controller类上使用
@Controller
,那么它将被视为MVC控制器类。但是如果你想在RESTFul Web服务中使用一个特殊的控制器,那么你可以使用@Controller
沿着@ResponseBody
注解,或者你可以直接在Controller
类上使用@RestController
。它对我很有效,因为我在使用RestFul Web服务创建SpringBoot项目时遇到了同样的错误。或:
lo8azlld3#
验证pom.xml中是否具有正确的thymeleaf依赖项:
blpfk2vs4#
作为一个初学者的SpringBoot,这个错误可以发生在任何人至少一次,因为有几个原因。
1.应用程序类(例如:SpringAppApplication.java)应该位于根级别,控制器类也可以放在同一级别下,或者放在子目录中。
1.您可能会遗漏控制器类别顶端的
@RestController
注解。1.或者可能是遗漏了Map标注。(
@PostMapping("/save")
或@GetMapping("/id")
等)1.最后,只需检查您是否输入了正确的请求Map地址(URL),您可能会在URL中遗漏斜杠或
@RequestMapping("/customer")
(如果控制器类中有注解)或拼写错误。w51jfk4q5#
其他类应该与主类处于同一级别或在其下。此外,请使用@Controller或@RestController
zzoitvuj6#
正如Deepak所回答的,主类应该在其他包之上的根包中。但是如果你不想这样做,你可以用途:
pengsaosao7#
我在GetMapping和PostMapping中错误地给予了名称参数
实际上,您需要直接指定路径
希望这个错误可以帮助任何人在未来!
piah890a8#
我是Spring/Java/Eclipse的新手,刚刚遇到这个错误。(在谷歌上找到这个问题)
已经给出的建议并不适用于我的情况。事实证明,我没有保存我的一些课程。
因此,如果有人看到此错误:您还应该检查是否保存了所有文件