无法使用 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 一起使用。
- 将它们放入文件夹:
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 打包不起作用。
- 您可以将 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
- 或者,您可以在 "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>
我已将所有 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 一起使用。
- 将它们放入文件夹:
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 打包不起作用。
- 您可以将 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
- 或者,您可以在 "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>