无法使用 Spring 引导解决视图

Not Able to Resolve View Using Spring boot

我已将所有 jsp 放在 views 文件夹的类路径中。

文件夹结构为:

src/main/resources/
src/main/resources/static/
src/main/resources/static/views/
src/main/resources/static/views/*.jsp
src/main/resources/static/views/*.png

我能够从静态文件夹中检索图像文件。但是当涉及到 jsp 时,我遇到了以下错误。

同时击中 url:http://localhost:9001/login

There was an unexpected error (type=Not Found, status=404).
/views/login/login.jsp

但是 login.jsp 存在于给定位置。

JSP 等模板与图像文件等静态内容完全相反。将您的模板放入 src/main/resources/templates

我相信默认情况下 Spring 引导查找 html 文件。要更改该行为,您必须如下更改 application.properties 以使用 jsp-s:spring.view.suffix: .jsp

甚至可以更改 spring.view.prefix 以指向静态资源。

我个人建议将 html-s 与 Thymeleaf 一起使用。

  1. 将它们放入文件夹:

src/main/resources/templates

2.These 三个依赖项可以帮助您:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

我应该使用war作为包装。在 jsp 的情况下,Jar 打包不起作用。

  1. 您可以将 JSP 文件放在 "src/main/resources/META-INF/resources" 文件夹位置。

我在 "src/main/resources/META-INF/resources" 下创建了一个 "WEB-INF/jsp" 文件夹并放置了 JSP 文件 there.It works。查看屏幕截图。

https://i.stack.imgur.com/P3jUI.png

  1. 或者,您可以在 "src/main/webapp" 下创建 "WEB-INF/jsp" 文件夹并放置 JSP 文件 there.But 为此,您必须将其打包为 ".war" 扩展。

Springboot默认tomcat容器不处理JSP。所以我们需要使用下面的依赖来处理它:

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

如果您在 JSP 中使用 JSTL 标签,那么还要在下面添加 jar :

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>