springboot模板文件未加载
Springboot template files are not loaded
我正在编写我的第一个 springboot web 应用程序,项目结构如下:
---src/main/java
+com.example.myproject
+--Application.java
+com.example.myproject.domain
+--Person.java
+com.example.myproject.web
+--GreetingController.java
---src/main/resources
+static
+--css
+--js
+templates
+--greeting.html
Aplication.java
package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
app.setShowBanner(false);
app.run(args);
}
}
GreetingController.java
package com.example.myproject.web;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GreetingController {
@RequestMapping("/greeting")
public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}
}
greeting.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
问题是当我 运行 项目,并在网络浏览器 URL 下输入
http://localhost:8080/greeting
结果仅显示此文本:greeting 而应显示此文本:Hello, World!
我曾尝试将 greeting.html 移出模板文件夹,但仍然不走运。据我了解,springboot应该自动扫描组件并正确加载资源文件。
这个问题请大家帮忙指教
只使用@Controller
注解,不使用@RestController
注解。它会 运行 很好。 @RestController
包含 @Controller
和 @ResponseBody
注释。因此,如果您使用 @RestController
,您将从它映射到的方法获得 return 响应。
我正在编写我的第一个 springboot web 应用程序,项目结构如下:
---src/main/java
+com.example.myproject
+--Application.java
+com.example.myproject.domain
+--Person.java
+com.example.myproject.web
+--GreetingController.java
---src/main/resources
+static
+--css
+--js
+templates
+--greeting.html
Aplication.java
package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
app.setShowBanner(false);
app.run(args);
}
}
GreetingController.java
package com.example.myproject.web;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GreetingController {
@RequestMapping("/greeting")
public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}
}
greeting.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
问题是当我 运行 项目,并在网络浏览器 URL 下输入
http://localhost:8080/greeting
结果仅显示此文本:greeting 而应显示此文本:Hello, World!
我曾尝试将 greeting.html 移出模板文件夹,但仍然不走运。据我了解,springboot应该自动扫描组件并正确加载资源文件。
这个问题请大家帮忙指教
只使用@Controller
注解,不使用@RestController
注解。它会 运行 很好。 @RestController
包含 @Controller
和 @ResponseBody
注释。因此,如果您使用 @RestController
,您将从它映射到的方法获得 return 响应。