Chu*_*uck 1 java spring thymeleaf spring-boot
我正在使用Thymeleaf的Spring Boot,我正在尝试访问一个简单的网页.构建项目时我没有任何错误.访问时只有这一个localhost:8080/greeting:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Fri Dec 02 15:36:04 CET 2016
There was an unexpected error (type=Not Found, status=404).
No message available
Run Code Online (Sandbox Code Playgroud)
我有一个控制器:
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class UserController {
@RequestMapping("/greeting")
public String user(@RequestParam(value = "name", required = false, defaultValue = "World") String name, Model model){
model.addAttribute("name",name);
return "greeting";
}
}
Run Code Online (Sandbox Code Playgroud)
主要:
package boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main (String[] args){
SpringApplication.run(Application.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个网页:
<!DOCTYPE html>
<html xmlns:th="http://www.themyleaf.org">
<head>
<meta charset="ISO-8859-1"/>
<title>SecondMaven</title>
</head>
<body>
<p th:text="'Hello, '+ ${name} + '!!!!!'" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我没有任何关于我的代码有什么问题的线索.我认为这是一个配置问题,但到目前为止我没有得到任何运气.我将不胜感激任何帮助,谢谢.
让我们仔细看看您的主要应用程序条目:
package boot;
^^^^^^^^^^^^^
// imports
@SpringBootApplication
public class Application { ... }
Run Code Online (Sandbox Code Playgroud)
在package boot与沿着@SpringBootApplication仅在或下部件的装置boot包将被扫描并在应用程序上下文注册.以下是您的控制器的外观:
package controller;
^^^^^^^^^^^^^^^^^^^
// imports
@Controller
public class UserController {
@RequestMapping("/greeting")
public String user(...) { ... }
}
Run Code Online (Sandbox Code Playgroud)
因为它位于controller包中,所以它不能被扫描@SpringBootApplication,因此它不会被注册,也不会处理对/greeting端点的请求.
最简单的解决方案是将控制器(以及其他被扫描的组件)移动到boot包装下,例如boot.controller在您的特定情况下.
无论如何,Spring Boot不需要任何特定的代码布局,但是,有一些最佳实践可以提供帮助.您可以在此处查看这些最佳做法.
| 归档时间: |
|
| 查看次数: |
6114 次 |
| 最近记录: |