Standardmäßig, wo kommt der Frühling-Boot erwarten, Ansichten gespeichert werden?
Ich experimentiere auf neu zu schreiben meine Konfiguration-heavy, Vanille Spring MVC Projekt mit Spring Boot. Ich begann, eine Marke neue Spring-Boot-Projekt in IntelliJ mit dem Spring-Boot-Initiaizer und ich werde die route mit der minimalen Java-basierte Konfiguration. Viele tutorials hinweisen, dass die main-Klasse erzeugt wird, ist ausreichend und die @SpringBootApplication
hat alles aufgenommen. Ich habe eine Beispiel-REST-Controller, um zu arbeiten und kehren Sie ein serialisiertes Objekt als JSON, aber es erscheint immer ein Blick, um zu zeigen, erweist sich als schwierig. Meine Struktur ist wie folgt, mit alles andere als die Standard-webapps-Verzeichnis, das ich angelegt.
src
`-main
`-java
`-resources
`-static
`-templates
`-webapp
`-WEB-INF
`-home.jsp
Dem controller ist ganz einfach.
@Controller
public class ViewMaster {
@RequestMapping("/home")
public String home() {
return "home";
}
}
Ohne Konfiguration, ich würde gerne wissen, wo der Frühling Boot erwartet, dass die Ansichten werden gespeichert und mit welcher Endung (html?). Ich habe auch versucht, um die folgenden in application.properties
aber ich bekomme immer noch die Fehlermeldung 404. Verschieben der WEB-INF-Verzeichnis oder nur die html-Datei, um Ressourcen hat auch nicht geholfen.
spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp
Habe ich auch versucht, einschließlich dieser Abhängigkeiten in meinem pom.xml ohne jede Wirkung.
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
Ich muss fehlt etwas schmerzhaft offensichtlich hier so freuen, wenn jemand zeigen kann, dass aus!
- Haben Sie dies Lesen? docs.Frühling.io/spring-boot/docs/current/Referenz/htmlsingle/...
- Ich sehe keine
.jsp
Dateien unter Ihrem/WEB-INF/
- Verzeichnis. Ich sehe nurhome.html
- Datei, ist, dass eine jsp-Datei und ein typo-Fehler in Frage? - Danke. Wusste nicht, über die JSP-Einschränkungen.
- Ja, dass war ein Tippfehler. Danke für den Hinweis it out.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung
Fand ich die Antwort per trial-and-error, was sich als ziemlich nervig. Ich hoffe, jemand kann mich korrigieren, wenn diese Schlussfolgerung falsch ist, aber es scheint, dass Spring Boot nicht wie der string
WEB-INF
. Umbenannt habe ich dieWEB-INF
Verzeichnisview
und verändert dieapplication.properties
der folgenden, und die Sicht wurde erfolgreich geladen.Weitere Ergebnisse
Ziel der übung war es, ein Beispiel für eine minimal, Java-basierte Konfiguration so setzte ich minimalising das setup. Ich habe dann festgestellt, dass viele Ratschläge aufgetischt auf mehreren SO threads und Foren nicht helfen. @JBNizet einen link bereitgestellt hat, in seinem Kommentar zu den Frühlings-Boot-docs, Listen einen sehr markanten Punkt, dass niemand erwähnt hat: JSPs einfach nicht gut spielen mit Spring Boot, wie es Einschränkungen je nach den eingebetteten container gewählt. Mit dem im Verstand, beschloss ich, zu versuchen, anstelle JSPs mit ThymeLeaf Vorlagen.
Meine neue config entfernt die Notwendigkeit für diese:
application.properties
:spring.mvc.view.prefix
+spring.mvc.view.suffix
org.springframework.boot /spring-boot-starter-tomcat
org.springframework.boot /tomcat-embed-jasper
javax.servlet /jstl
Also einfach die Standard-Spring-Boot-Vorlage und 2 ThymeLeaf Abhängigkeiten mit den Ansichten benannt
ViewName.html
platziert insrc/main/resources/templates
.Ohne weitere Konfiguration in Spring Boot erwartet, dass die Ansichten werden gespeichert in /webapp, die view-Seite kann in jedem beliebigen format abhängig von der Anwendung.- Eigenschaften-Einstellungen(wie html oder jsp)
zu setzen .jsp als view-Seite /views/- Ordner
und Sie müssen tomcat jaspher , wenn Sie nicht zählen es die Seite nicht analysiert werden, sondern es wird heruntergeladen, wenn eine Datei
Den ersten denken, dass Sie tun, ist, legen Sie die Abhängigkeit in Gießen pom wie unten
Mit dieser Abhängigkeit, die Sie sagen, auf spring boot, dass die eingebettete tomcat-Abhängigkeit werden zur Verfügung gestellt, und diese haben die Wirkung, dass die Frühjahr-app nicht über den tomcat-Abhängigkeit innerhalb der jar-Datei.
Die Sekunde denken, dass Sie tun, ändern Sie die pakaging proeprties in Ihrem pon aus Glas zu Krieg, wie unten
Die Dritte und Letzte, was, das Sie tun müssen, ist die Umgestaltung der standard-Anwendung Starten startrer wie unten
für Ihre Konfiguration in den Eigenschaften der Anwendung kann in Ordnung sein, aber ich schlage vor, Sie setzen die Ihre jsp-unter einem bestimmten Ordner und dann umgestalten, die Ihre Konfiguration für Punkt-zu-auf den neuen Pfad, und nicht nur unter WEB-INF, aber das ist nur ein Rat.
Ich hoffe, dass diese Ihnen helfen können.
tys, pls versuchen, hinzufügen Abhängigkeit:
Referenz : https://github.com/lenicliu/examples/tree/master/examples-spring-boot/examples-spring-boot-jsp
spring.mvc.view.prefix
ist ein relativer Pfad von webapp-Ordner, und u setzen können jsp-Dateien in es.application.properties
Entfernen:
Hinzufügen:
pom.xml
Entfernen jasper Abhängigkeit:
Hinzufügen thymeleaf Abhängigkeit:
Details: Mit thymeleaf statt jsp