spring-boot-starter-web 与 spring-boot-starter-thymeleaf
spring-boot-starter-web vs spring-boot-starter-thymeleaf
我尝试了解 spring 引导如何与 html 页面一起工作。我开始遵循指南 from spring.io。本指南展示了如何使用 html 页面和视图技术 Thymeleaf。它有页面:
<!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>
我改成了简单的
<!DOCTYPE HTML>
<html>
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Hello
</body>
</html>
然后spring boot reference documentation把spring-boot-starter-thymeleaf
(现在不需要)改成spring-boot-starter-web
,之后就看不到网页了。我看到结果:
There was an unexpected error (type=Not Found, status=404).
No message available.
当我恢复 Gradle 对 thymeleaf
的依赖时,一切正常。
控制器src/main/java/hello/GreetingController.java
package hello;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class GreetingController {
@RequestMapping("/greeting")
public String greeting() {
return "greeting";
}
}
申请src/main/java/hello/Application.java
package hello;
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);
}
}
有人可以向我解释一下 web
和 thymeleaf
依赖项之间的区别吗? src/main/resources/templates/greeting.html
中的 HTML 页面?
它还应该与 gradle 依赖项一起工作 org.springframework.boot:spring-boot-starter-web:1.2.5.RELEASE
而不是 org.springframework.boot:spring-boot-starter-thymeleaf:1.2.5.RELEASE
。
spring-boot-starter-web
的功能类似于使用 spring 开发 Web 应用程序所需的一组基本依赖项。这些基本依赖项是:
- 杰克逊数据绑定
- 休眠验证器
- spring-核心
- spring-网络
- spring-webmvc
- spring-boot-starter
- spring-boot-starter-tomcat
spring-boot-starter-thymeleaf
基于 spring-boot-starter-web
并添加了一些额外的依赖项,例如 thymeleaf 模板引擎:
- thymeleaf-layout-方言
- spring-核心
- spring-boot-starter
- spring-boot-starter-web
- 百里香叶-spring4
您可以在 mvnrepository.com 上查找(spring-boot-starter-thymeleaf and spring-boot-starter-web)。
我尝试了解 spring 引导如何与 html 页面一起工作。我开始遵循指南 from spring.io。本指南展示了如何使用 html 页面和视图技术 Thymeleaf。它有页面:
<!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>
我改成了简单的
<!DOCTYPE HTML>
<html>
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Hello
</body>
</html>
然后spring boot reference documentation把spring-boot-starter-thymeleaf
(现在不需要)改成spring-boot-starter-web
,之后就看不到网页了。我看到结果:
There was an unexpected error (type=Not Found, status=404).
No message available.
当我恢复 Gradle 对 thymeleaf
的依赖时,一切正常。
控制器src/main/java/hello/GreetingController.java
package hello;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class GreetingController {
@RequestMapping("/greeting")
public String greeting() {
return "greeting";
}
}
申请src/main/java/hello/Application.java
package hello;
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);
}
}
有人可以向我解释一下 web
和 thymeleaf
依赖项之间的区别吗? src/main/resources/templates/greeting.html
中的 HTML 页面?
它还应该与 gradle 依赖项一起工作 org.springframework.boot:spring-boot-starter-web:1.2.5.RELEASE
而不是 org.springframework.boot:spring-boot-starter-thymeleaf:1.2.5.RELEASE
。
spring-boot-starter-web
的功能类似于使用 spring 开发 Web 应用程序所需的一组基本依赖项。这些基本依赖项是:
- 杰克逊数据绑定
- 休眠验证器
- spring-核心
- spring-网络
- spring-webmvc
- spring-boot-starter
- spring-boot-starter-tomcat
spring-boot-starter-thymeleaf
基于 spring-boot-starter-web
并添加了一些额外的依赖项,例如 thymeleaf 模板引擎:
- thymeleaf-layout-方言
- spring-核心
- spring-boot-starter
- spring-boot-starter-web
- 百里香叶-spring4
您可以在 mvnrepository.com 上查找(spring-boot-starter-thymeleaf and spring-boot-starter-web)。