Sono nuovo all'inizio di Spring (e servlet 3.0). Sto cercando di creare un progetto mvc di primavera con JSP come vista. Quando restituisco una vista dal mio controller, non viene risolto come JstlView.Come configurare l'app mvc boot di partenza per JSP?
Ecco quello che ho fatto:
@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";
}
}
creati entrambi i file .jsp in src\main\webapp\WEB-INF\jsp
.
Dopo googling ho scoperto che ho bisogno di specificare questo in application.properties Così ho aggiunto segue in oggetti di scena:
spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp
logging.level.org.springframework: TRACE
logging.level.com: TRACE
Anche dopo questo non sta funzionando. Ecco la traccia.
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
Come si può vedere nella traccia, questo sta cercando di risolvere /jsp/welcome.jsp come InternalResourceView invece di JstlView. Alla fine fallisce come 404.
Quali altri passaggi devo seguire? Esiste un tutorial per SpringBoot-mvc con jsp?
P.S. Posso creare l'app mvc di primavera con jsp usando web.xml (usando JstlView nel mio file di configurazione). Ma non riesco a trovare alcun tutorial per Spring boot mvc con jsp.
Anche se non ho familiarità con la Primavera di avvio, (io preferisco lo sviluppo primavera il modo "legacy"), uno sguardo in [questo SO post] (http://stackoverflow.com/questions/29953245/configure-viewresolver-with-spring-boot-and-annotations-gives-no-mapping-found-f). Potrebbe aiutare. Abbiamo bisogno di un bean 'InternalResourceViewResolver' per le viste da risolvere. È necessario un equivalente di quello in un'applicazione Spring Boot. –
Spring Boot ha una [applicazione di esempio JSP] (https://github.com/spring-projects/spring-boot/tree/v1.3.3.RELEASE/spring-boot-samples/spring-boot-sample-web-jsp) che può essere utile qui –
Prova ad usare il builder ufficiale dell'applicazione http://start.spring.io per configurare la tua applicazione (per impostazione predefinita usa il motore di template JSP). –