Ich bin neu in Spring Boot (und Servlet 3.0). Ich versuche, Spring-Mvc-Projekt mit JSP als Ansicht zu erstellen. Wenn ich eine Ansicht von meinem Controller zurückgebe, wird sie nicht als JstlView aufgelöst.Wie konfiguriert man die Spring Boot MVC App für JSP?
Hier ist, was ich getan habe:
@SpringBootApplication
public class MyApp extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
@Controller
public class MainController {
@RequestMapping(value="/main" , method = RequestMethod.GET )
public String main(){
return "main";
}
@RequestMapping(value="/" , method = RequestMethod.GET )
public String welcome(){
return "welcome";
}
}
Erstellt beide .jsp Dateien in src\main\webapp\WEB-INF\jsp
.
Nach Googeln fand ich, dass ich das in application.properties angeben muß also ich folgende in Requisiten hinzugefügt:
spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp
logging.level.org.springframework: TRACE
logging.level.com: TRACE
Auch nach dieser es nicht funktioniert. Hier ist die Spur.
2016-04-24 19:54:49.016 TRACE 7880 --- [nio-8080-exec-1] .w.s.m.m.a.ServletInvocableHandlerMethod : Invoking [MainController.welcome] method with arguments []
2016-04-24 19:54:49.016 TRACE 7880 --- [nio-8080-exec-1] .w.s.m.m.a.ServletInvocableHandlerMethod : Method [welcome] returned [welcome]
2016-04-24 19:54:49.020 DEBUG 7880 --- [nio-8080-exec-1] o.s.w.s.v.ContentNegotiatingViewResolver : Requested media types are [text/html, application/xhtml+xml, image/webp, application/xml;q=0.9, */*;q=0.8] based on Accept header types and producible media types [*/*])
2016-04-24 19:54:49.020 DEBUG 7880 --- [nio-8080-exec-1] o.s.w.servlet.view.BeanNameViewResolver : No matching bean found for view name 'welcome'
2016-04-24 19:54:49.022 DEBUG 7880 --- [nio-8080-exec-1] o.s.b.f.s.DefaultListableBeanFactory : Invoking afterPropertiesSet() on bean with name 'welcome'
2016-04-24 19:54:49.022 TRACE 7880 --- [nio-8080-exec-1] o.s.w.s.v.InternalResourceViewResolver : Cached view [welcome]
2016-04-24 19:54:49.022 DEBUG 7880 --- [nio-8080-exec-1] o.s.w.s.v.ContentNegotiatingViewResolver : Returning [org.springframework.web.servlet.view.InternalResourceView: name 'welcome'; URL [/WEB-INF/jsp/welcome.jsp]] based on requested media type 'text/html'
2016-04-24 19:54:49.022 DEBUG 7880 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Rendering view [org.springframework.web.servlet.view.InternalResourceView: name 'welcome'; URL [/WEB-INF/jsp/welcome.jsp]] in DispatcherServlet with name 'dispatcherServlet'
2016-04-24 19:54:49.022 TRACE 7880 --- [nio-8080-exec-1] o.s.w.servlet.view.InternalResourceView : Rendering view with name 'welcome' with model {} and static attributes {}
2016-04-24 19:54:49.026 DEBUG 7880 --- [nio-8080-exec-1] o.s.w.servlet.view.InternalResourceView : Forwarding to resource [/WEB-INF/jsp/welcome.jsp] in InternalResourceView 'welcome'
2
Wie Sie in der Spur zu sehen, das versucht, so InternalResourceView zu lösen /jsp/welcome.jsp statt JstlView. Schließlich schlägt es als 404 fehl.
Welche anderen Schritte muss ich folgen? Gibt es ein Tutorial für SpringBoot-mvc mit JSP?
P.S. Ich kann Spring Mvc App mit Jsp mit web.xml (mit JstlView in meiner Konfigurationsdatei) erstellen. Aber ich kann kein Tutorial für Spring boot mvc mit jsp finden.
Obwohl ich mit Frühlings-Boot nicht vertraut bin, (ich ziehe Frühling Entwicklung der „Legacy“ Art und Weise), einen Blick in [diese SO post] (http://stackoverflow.com/questions/29953245/configure-viewresolver-with-spring-boot-and-annotations-gives-no-mapping-found-f). Könnte helfen. Wir benötigen eine Bean "InternalResourceViewResolver" für die zu lösenden Ansichten. Sie benötigen ein Äquivalent zu einer Spring Boot-Anwendung. –
Spring Boot hat eine [JSP-Beispielanwendung] (https://github.com/spring-projects/spring-boot/tree/v1.3.3.RELEASE/spring-boot-samples/spring-boot-sample-web-jsp) das kann hier hilfreich sein –
Versuchen Sie, offizielle Anwendung Builder http://start.spring.io zu verwenden, um Ihre Anwendung zu konfigurieren (standardmäßig JSP-Vorlagen-Engine verwendet). –