Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring引导不呈现JSP视图_Java_Spring_Jsp_Spring Mvc_Spring Boot - Fatal编程技术网

Java Spring引导不呈现JSP视图

Java Spring引导不呈现JSP视图,java,spring,jsp,spring-mvc,spring-boot,Java,Spring,Jsp,Spring Mvc,Spring Boot,我使用Spring Boot 1.5.3.0版本。这是classMVC配置 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

我使用Spring Boot 1.5.3.0版本。这是class
MVC配置

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);
    }

}
控制器:

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";
    }

}
调试应用程序时,我会看到日志

2017-05-02 07:41:48.970  INFO 3333 --- [           main] hello.MvcConfiguration                   : Register ViewResolver success.
但是webapp返回纯JSP文本:


我在
build.gradle
中添加了必要的依赖项。我更喜欢在独立的Tomcat上运行web应用程序。如何修复它?

您需要为
tomcat嵌入jasper
添加依赖项。
build.gradle
文件中的依赖项如下所示

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    // JPA Data (We are going to use Repositories, Entities, Hibernate, etc...)
    compile 'org.springframework.boot:spring-boot-starter-data-jpa'
    compile 'mysql:mysql-connector-java'
    compile 'javax.servlet:jstl:1.2'
    providedRuntime 'org.apache.tomcat.embed:tomcat-embed-jasper'
    testCompile('org.springframework.boot:spring-boot-starter-test')
}
gradle bootRun
现在,您可以像下面这样运行Spring引导应用程序

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    // JPA Data (We are going to use Repositories, Entities, Hibernate, etc...)
    compile 'org.springframework.boot:spring-boot-starter-data-jpa'
    compile 'mysql:mysql-connector-java'
    compile 'javax.servlet:jstl:1.2'
    providedRuntime 'org.apache.tomcat.embed:tomcat-embed-jasper'
    testCompile('org.springframework.boot:spring-boot-starter-test')
}
gradle bootRun
如果您想在独立的tomcat中部署,那么不要添加
tomcat嵌入jasper
依赖项。在war文件中需要
jstl
jar

gradle build

根据Spring Boot文档:

如果可能的话,应该避免使用JSP,在将JSP与嵌入式servlet容器一起使用时,存在一些已知的限制

以下是链接:


您是否参考了此is源代码上共享的示例项目:可能与我重复添加了必要的依赖项:您是否尝试查看此处: