我是Spring Boot的新手。在使用@RequestMapping时,在以下简单代码中,http://localhost:8080/person会导致以下错误:
错误:
There was an unexpected error (type=Not Found, status=404).
代码:
@Configuration
@EnableAutoConfiguration
@ComponentScan
@Controller
public class SpringBootAlphaApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAlphaApplication.class, args);
}
@RequestMapping("/person")
public String addPerson(Model model){
Person person = new Person();
person.setName("SomeName");
person.setAge(28);
model.addAttribute("person", person);
return "personview";
}
@RequestMapping("/")
public String testPath(){
return "Test URL";
}
}
答案 0 :(得分:1)
考虑到你的答案,那么你实际上应该得到另一个错误。如果您使用的是 spring-boot-starter-thymeleaf ,则如果您的视图可以解析(但不包含</meta>
标记),则会出现错误:
org.xml.sax.SAXParseException: The element type "meta" must be terminated by the matching end-tag "</meta>".
你应该获得type=Internal Server Error, status=500
状态。
要解决这个问题,您可以通过将其模式设置为LEGACYHTML
来实际配置Thymeleaf的严格性:
spring.thymeleaf.mode=LEGACYHTML5
但是,它要求您添加另一个名为 nekohtml 的依赖项:
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.15</version>
</dependency>
未找到错误通常意味着其他事情:
答案 1 :(得分:0)
这是由<meta>
没有结尾标记</meta>
引起的。显然Thymleaf对标签非常严格,希望返回更有意义的消息而不是404 Not Found。