Comment renvoyer une page html à partir d'un séjour de contrôleur au printemps de démarrage?
Je veux retourner une simple page html à partir d'un contrôleur, mais j'ai seulement le nom du fichier n'est pas son contenu. Pourquoi?
C'est mon code de contrôleur:
@RestController
public class HomeController {
@RequestMapping("/")
public String welcome() {
return "login";
}
}
C'est mon projet structure:
[
OriginalL'auteur Gustavo | 2016-08-01
Vous devez vous connecter pour publier un commentaire.
Lors de l'utilisation de
@RestController
comme ceci:C'est la meme chose que vous comme cela dans un contrôleur de la normale:
À l'aide de
@ResponseBody
retournereturn "login";
comme un objet de type String. N'importe quel objet vous retour devra être joint à l'payload
dans le corps HTTP JSON.C'est pourquoi vous êtes obtenir juste
login
dans la réponse.OriginalL'auteur kukkuz
La réponse de Kukkuz n'a pas fonctionné pour moi jusqu'à ce que j'ai ajouté dans cette dépendance dans le fichier pom:
Du guide ici.
Ainsi que la mise à jour du registre des ressources comme indiqué ici.
Il a ensuite commencé à travailler très bien. Si quelqu'un dans le futur tourne dans le même sujet, et à la suite de la première réponse ne résout pas votre problème, suivez ces 2 autres étapes après l'utilisation du code dans @Kukkuz de réponse et de voir si cela fait une différence.
OriginalL'auteur Silmarilos
Vous pouvez essayer d'utiliser
ModelAndView
:OriginalL'auteur Happy Nguyen
Remplacer
@RestController
avec@Controller
.OriginalL'auteur Noshin
Remplacer @Restcontroller avec @controller.@Restcontroller retourne uniquement le contenu html et des pages jsp.
OriginalL'auteur Prasad Reddy
Vous obtenez seulement le nom, parce que vous renvoyer uniquement le nom
return "login";
. C'est@RestController
et ce contrôleur de renvoi de données plutôt que de vue, à cause de cela, vous obtenez uniquement le contenu que vous de retour à partir de la méthode.Si vous souhaitez afficher la vue avec ce nom, vous devez utiliser Spring MVC, voir cet exemple.
OriginalL'auteur Aleksandr Podkutin
La
String
vous revenez ici:Est en fait le ensemble du contenu ce que vous renvoyer au navigateur.
Si vous voulez avoir le contenu d'un fichier à envoyer une façon est:
Vous pouvez aller avec cette réponse sur la question du Printemps de service de démarrage pour télécharger un fichier
OriginalL'auteur ppeterka
La plus correcte et la forme moderne est d'utiliser
IoC
de mettre de la dépendance à l'extrémité de la méthode, comme le thymeleafModel
exemple...Voir l'exemple complet: https://spring.io/guides/gs/serving-web-content/
OriginalL'auteur Please_Dont_Bully_Me_SO_Lords
Vous devez utiliser
login.html
. Et remplacerRestController
avecController
OriginalL'auteur Kairat Doshekenov
Je ne suis pas en utilisant Thymeleaf et la seule façon dont il a travaillé pour moi était avec
@Controller
dans la classe et
OriginalL'auteur Johnny Willer
Suivez les étapes ci-dessous
retunrn "index"
Inclure les dessous de dépendances.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
OriginalL'auteur Chandan Kumar