2015-07-06 12 views
0

Я пытаюсь понять, как весенняя загрузка работает с html-страницами. Я начал следовать руководству from spring.io. В этом руководстве показано, как работать с html-страницей и просматривать технологию Thymeleaf. Он имеет страницы:spring-boot-starter-web vs spring-boot-starter-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 зависимостей для этого только HTML страницы из src/main/resources/templates/greeting.html?

+0

'spring-boot-starter-web' является зависимостью от' spring-boot-starter-thymeleaf'. Поэтому 'тимелеар' основан на' web'. – alexvetter

ответ

1

Он также должен работать с зависимостью градиента 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 функционирует как набор базовых зависимостей, необходимых для разработки веб-приложений с пружиной. Эти основные зависимости являются:

  • ДЖЕКСОНА-DataBind
  • гибернации-валидатор
  • весна-жильный
  • весна веб
  • весна-webmvc
  • весна-ботинок стартер
  • весна -boot-starter-tomcat

spring-boot-starter-thymeleaf основан на spring-boot-starter-web и добавляет некоторую дополнительная зависимость, например, шаблон thymeleaf двигатель:

  • thymeleaf-макет говор
  • весна-жильный
  • весны-ботинки стартер
  • весна-загрузка-стартер -web
  • thymeleaf-spring4

Вы можете посмотреть это на mvnrepository.c om (для spring-boot-starter-thymeleaf и spring-boot-starter-web).

+0

Хорошо, если 'org.springframework.boot: spring-boot-starter-thymeleaf: 1.2.5.RELEASE' просто добавьте зависимость тимелеафа к 'org.springframework.boot: spring-boot-starter-web: 1.2.5.RELEASE', так что я должен добавить к своим зависимостям для правильной работы с html-страницей, такой как зависимость' thymeleaf'? Почему просто зависимость «тимелеаф» работает с html-страницей? Я спрашиваю, что я забыл добавить для правильной работы? – Loniks

+0

Итак, у вас есть только index.html. Нет контроллера, что так было? – alexvetter

+0

Я написал, поэтому я использовал руководство от [spring.io.] (Https://spring.io/guides/gs/serving-web-content/) только что изменил страницу и «spring-boot-starter». Когда я использую 'thymeleaf', все работает нормально, но почему не работает с' starter-web'? – Loniks

Смежные вопросы