JSP文件未在浏览器中加载,但文件名在spring Boot Application的浏览器中显示为字符串
Posted
技术标签:
【中文标题】JSP文件未在浏览器中加载,但文件名在spring Boot Application的浏览器中显示为字符串【英文标题】:JSP file does not load in browser but file name is displayed as String in browser in spring Boot Application 【发布时间】:2019-02-21 04:08:44 【问题描述】:index.jsp 或任何 .jsp 文件(也是 .html 文件),当我使用字符串类型方法作为索引方法时,我无法在浏览器中显示,而是文件名在浏览器中显示为字符串。 但是,如果我使用 ModelAndView 类,那么它可以正常工作。如何使用字符串类型方法显示页面? 我浏览了很多示例并访问了许多网站,包括 ***.com。波纹管所有相关文件:
控制器类
@SpringBootApplication
public class DemoApplication
public static void main(String[] args)
SpringApplication.run(DemoApplication.class, args);
@RestController
public class AppController extends SpringBootServletInitializer
/*following method don't works*/
@RequestMapping("/home")
public String index()
return "index";
/*following method works fine*/
/* @RequestMapping("/home")
public ModelAndView modelAndView()
return new ModelAndView("index");
*/
POM.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- JSTL for JSP -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- Need this to compile JSP -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
Application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
输出:
预期的页面应如下所示: 文件夹位置没问题。我多次尝试使用不同的 IDE 和文件位置的各种组合,以及 pom.xml 中的所有依赖项。但是每次都会出错。
【问题讨论】:
使用@Controller
而不是@RestController
。
【参考方案1】:
发生这种情况是因为 @RestController
正在将响应发送到浏览器主体,因此要返回 JSP 页面,请改用 @Controller
注释。
将@RestController
更改为@Controller
。
@Controller
用于将类标记为 Spring MVC Controller。
@RestController
是一个方便的注解,它只不过是添加了@Controller
和@ResponseBody
注解(参见:[Javadoc][1])
查看两者之间的区别。 Difference between spring @Controller and @RestController annotation
【讨论】:
【参考方案2】:这是由于 @RestController 注释而发生的,因为当我们想要以 JSON 格式返回内容时会使用它。 --> 您可以将注解更改为@Controller 否则返回包含您的 JSP 文件的模型
【讨论】:
以上是关于JSP文件未在浏览器中加载,但文件名在spring Boot Application的浏览器中显示为字符串的主要内容,如果未能解决你的问题,请参考以下文章
bootstrap.yml 未在 Spring Boot 2 中加载
从 jar 运行时 CSS 未在 Spring Boot 中加载