spring-boot - Spring Boot应用程序在命中目标时下载JSP,但不是HTML
问题描述
当我点击 URL 时,它正在下载 JSP 页面,但是当我使用 HTML 页面时,它会在浏览器中呈现。|| HTML 1 - 0 JSP ||
项目结构
应用属性:
spring.mvc.view.prefix=/views/
spring.mvc.view.suffix=.html
控制器
当我添加了 tomcat-embed-jasper 依赖项时它起作用了。为什么会这样?
解决方案
您可以执行以下操作:
演示控制器.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);
}
}
应用程序属性
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)
推荐阅读
- python - 我需要以维度方式计算数组的平均值
- javascript - 重叠命令?
- angular - 如何使“NativeScript Collapsing Header Plugin”与 Angular 一起工作
- php - GSM 调制解调器 SMS 发送错误:无法设置 com 端口
- angular - angular7中2个模块的声明错误
- c# - EF Core 2.2 多对多获取相关列表
- react-native - React Native:使用 react-native-fs 时出现异常
- visual-studio-2019 - 在 Visual Studio 2019 中,WCF 服务(启用 AJAX)不在 Add --> New Item
- javascript - ES6 箭头函数和 setTimeOut
- java - 较大数组的最后一个元素索引