2017-05-02 6 views
1

Ich benutze Spring Boot 1.5.3.RELEASE. Das ist die Klasse MvcConfigurationSpring Boot nicht rendern JSP view

package hello; 

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.web.servlet.LocaleResolver; 
import org.springframework.web.servlet.ViewResolver; 
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; 
import org.springframework.web.servlet.i18n.SessionLocaleResolver; 
import org.springframework.web.servlet.view.InternalResourceViewResolver; 

import java.util.Locale; 

@Configuration 
@EnableWebMvc 
public class MvcConfiguration extends WebMvcConfigurerAdapter { 

    private static final Logger logger = LoggerFactory.getLogger(MvcConfiguration.class); 

    @Bean 
    public ViewResolver getViewResolver() { 
     InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
     resolver.setPrefix("/WEB-INF/jsp/"); 
     resolver.setSuffix(".jsp"); 
     logger.info("Register ViewResolver success."); 
     return resolver; 
    } 

    @Override 
    public void configureDefaultServletHandling(
      DefaultServletHandlerConfigurer configurer) { 
     configurer.enable(); 
    } 

    @Bean 
    public LocaleResolver localeResolver() { 
     SessionLocaleResolver slr = new SessionLocaleResolver(); 
     slr.setDefaultLocale(Locale.US); 
     return slr; 
    } 

    @Bean 
    public LocaleChangeInterceptor localeChangeInterceptor() { 
     LocaleChangeInterceptor lci = new LocaleChangeInterceptor(); 
     lci.setParamName("locale"); 
     return lci; 
    } 

    @Override 
    public void addInterceptors(InterceptorRegistry registry) { 
     registry.addInterceptor(localeChangeInterceptor()); 
     super.addInterceptors(registry); 
    } 

} 

Controller:

package hello; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

@Controller 
@RequestMapping(path = "/") 
public class HomeController { 

    @RequestMapping(method = RequestMethod.GET) 
    public String home(){ 
     return "currency"; 
    } 

} 

Wenn Debug-app, sehe ich

2017-05-02 07:41:48.970 INFO 3333 --- [   main] hello.MvcConfiguration     : Register ViewResolver success. 

aber Webapp zurückkehren log Ebene JSP Text: enter image description here

Ich fügte hinzu, notwendig Abhängigkeiten bei build.gradle. Ich bevorzuge Run Web App auf Standalone Tomcat. Wie man es repariert?

+0

haben Sie die Beispielprojekte bezeichnet geteilt auf [Github] (https://github.com/spring-projects/spring-boot/tree/master/Spring-Boot-Samples) –

+0

Dies ist Quellcode: https://github.com/donhuvy/temp_erp/blob/master/src/main/java/hello/MvcConfiguration.java#L27 –

+0

Mögliches Duplikat von [JSP-Datei nicht Rendering in Spring Boot Web-Anwendung] (http://stackoverflow.com/questions/20602010/jsp-file-not-rendering-in-spring-boot-web-application) –

Antwort

0

Sie müssen die Abhängigkeit für tomcat-embed-jasper hinzufügen. Abhängigkeiten in Ihrer build.gradle Datei sollten wie folgt sein.

Jetzt können Sie Ihre Spring Boot-Anwendung wie folgt ausführen.

gradle bootRun 

Wenn Sie im Standalone-tomcat bereitstellen möchten, dann fügen Sie nicht tomcat-embed-jasper Abhängigkeit. Sie würden jstl Glas in Ihrer Kriegsdatei benötigen.

gradle build