Загрузочное приложение Spring загружает JSP при достижении цели, но не HTML - PullRequest
0 голосов
/ 03 мая 2019

Когда я нажимаю 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 голосов
/ 03 мая 2019

Вы можете сделать следующее:

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

0 голосов
/ 03 мая 2019

- Это сработало, когда я добавил зависимость tomcat-embed-jasper.Почему это произошло?

Поскольку ему нужен контейнер веб-приложения.

0 голосов
/ 03 мая 2019

Встроенный tomcat рассматривает рендеринг jsp как необязательный. Вот почему это нужно. Также как я могу понять. Вы должны были указать область зависимости tomcat-embed-jasper, как указано.

...