无法使用Spring启动解析视图

时间:2015-06-16 13:01:51

标签: spring spring-mvc spring-boot

我已将所有jsp放在views文件夹的classpath中。

文件夹结构是:

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时,我会遇到以下错误。

点击网址时:http://localhost:9001/login

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

然而,login.jsp存在于给定位置。

6 个答案:

答案 0 :(得分:1)

  1. 您可以将JSP文件放在" src / main / resources / META-INF / resources"文件夹位置。
  2. 我创建了一个" WEB-INF / jsp"文件夹下的" src / main / resources / META-INF / resources"并将JSP文件放在那里。它的工作原理。检查屏幕截图。

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

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

答案 1 :(得分:1)

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>

答案 2 :(得分:0)

JSP等模板与静态内容(如图像文件)完全相反。将模板放在src/main/resources/templates中。

答案 3 :(得分:0)

  1. 将它们放在文件夹中:
  2. src/main/resources/templates

    2.这三个依赖项可以帮助你:

    <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>
    

答案 4 :(得分:0)

我应该用战争作为包装。罐装包装在jsp的情况下不起作用。

答案 5 :(得分:-1)

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

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

我个人建议在Thymeleaf中使用html-s。