Spring Boot应用程序在达到目标时会下载JSP,但不会到达HTML

时间:2019-05-03 07:22:10

标签: spring-boot spring-mvc spring-web

当我点击URL时,它正在下载JSP页面,但是当我使用HTML页面时,它将在浏览器中呈现。 || HTML 1-0 JSP ||

项目结构

enter image description here

应用程序属性:

spring.mvc.view.prefix=/views/
spring.mvc.view.suffix=.html

控制器

enter image description here

当我添加了tomcat-embed-jasper依赖项时,它起作用了。 为什么会这样?

3 个答案:

答案 0 :(得分:0)

嵌入式tomcat认为jsp渲染是可选的。这就是为什么需要它。据我所知。您必须已提供所提供的tomcat-embed-jasper依赖关系范围。

答案 1 :(得分:0)

您可以执行以下操作:

DemoController.java:

@Controller
public class DemoController {    
    @GetMapping("/")
    public String getLoginView(){
        return "login";  
    }       
    @GetMapping("/welcoome")
    public String welcome(){
        return "login";   
    }
}

ApplicationConfigurerAdapter.java

@Configuration
@EnableWebMvc
public class ApplicationConfigurerAdapter extends WebMvcConfigurerAdapter{

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

    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}

DemoApplication.java

@Configuration
@EnableAutoConfiguration
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer{

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

application.properties

server.contextPath=/
server.servlet.contextPath=/

server.port=6565

pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>   
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

您可以将其构建为mvn软件包,也可以在容器(例如Tomcat)之外运行

Project structure Output

答案 2 :(得分:0)

-当我添加了tomcat-embed-jasper依赖项时,它起作用了。为什么会这样?

因为它需要一个webapp容器。