当前位置: 首页 > 知识库问答 >
问题:

在IntelliJ中运行时,JSP文件作为视图不加载

赵夕
2023-03-14

我用intelliJ创建了一个简单的Spring Boot Web应用程序。我放置了一个简单的。jsp文件位于/src/main/resources/templates/文件夹中,其中包含一些基本的HTML。

我试图在控制器中返回这个,但我得到了这个错误;

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Fri Sep 09 10:37:46 BST 2016
There was an unexpected error (type=Not Found, status=404).
No message available

我假设Spring找不到。jsp文件,但控制台中没有出现其他错误来提供任何进一步的信息。

这是我的简单控制器;

@Controller
@RequestMapping("/test")
public class TestController {

    @RequestMapping("")
    public ModelAndView index() {
        return new ModelAndView("test");
    }

}

我的申请表中包括了以下内容。财产档案;

spring.mvc.view.prefix = /templates/
spring.mvc.view.suffix = .jsp

我的POM文件包括以下依赖项;

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jersey</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

我正在使用嵌入tomcat的Spring Boot。

我已尝试更改应用程序内部视图的路径。财产;classpath:/templates/但这也没什么区别。

最后,这里是我的项目结构;

当运行应用程序时,我只是使用IntelliJ中的运行选项。

共有3个答案

西门庆
2023-03-14

如果我将tomcat嵌入jasper依赖项设置为默认范围(未标记为“提供”),那么一切都可以正常工作。。。使用spring boot 1.5.2和idea 2017.1。否则,就很难改变这一点——如果你在IDEA项目结构中改变它,那么下次它从maven或gradle更新项目时,它就会丢失。我还没有想出一个办法来让它工作。

如果你在IDEA中使用Spring runner,事情会变得更加复杂——尽管我还是建议你这样做。当IDEA完全知道你的项目是Spring时,它会让事情变得更好。

颛孙庆
2023-03-14

设置工作目录帮助了我---默认情况下,它是空的。

>

  • 在Idea中编辑您的Spring Boot应用程序配置。

    设置工作目录,就像下面的屏幕截图所示:

    https://imgs.xnip.cn/cj/n/82/0fb60c75-c5e1-414b-ba65-4f6369651338.png" width="100%" height="100%" />

  • 惠文彬
    2023-03-14

    我最近也经历过同样的情况,依赖性如下:-

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

    如果我将"作用域"更改为"默认",使用Intellij运行应用程序,它工作正常。

    但是如果我想保持范围为提供,我必须使用命令行(终端)并执行以下操作:-

    mvn clean spring-boot:run
    

    这对我有用。

     类似资料:
    • 我使用kotlin中的EclipsePAHOMQTT库和IntellijIDE中的Gradle创建了一个小型mqtt应用程序。当通过Intellij运行它时,它运行良好,但是当我构建它并运行创建的jar文件时,我会得到一个错误。 从我看到的其他问题来看,这似乎与类路径有关,但我不确定如果这确实是问题所在,需要做什么,因为我使用的是gradle而不是jar文件作为库。 我正在学习这个教程 这是我的档

    • 我今天在IntelliJ中运行一个简单的TestKit测试时遇到了一些问题。测试是针对Scala代码的(我有用于Intellij的Scala插件),并且基于Ray Roestenburg的示例。 Intellij项目是使用“Maven模块”创建的,然后我将所有依赖项添加到该模块并创建了我的项目。测试位于以下地方: 缺少类:BasicActorSpec java.lang.ClassNotFound

    • 当试图在文件中运行lambda时,我遇到了一个问题:才允许使用。 我的设置: 在Intellij IDEA的项目结构中,我将项目SDK和项目语言设置为Java8. 模块语言级别为8-Lambdas、类型注释等 使用和 项目字节码版本设置为1.8 Jetty的最新版本(V9.4.31.x) 项目使用插件,在中将 和 设置为1.8

    • 我正在生成。Liferay portlet中的svg文件将保存在服务器(JBoss AS)上的svg文件夹中。这些文件生成并保存在中。java类,如下所示: 该文件保存在server/bin/svg目录中。但是当我试图访问我的数据库中的文件时。jsp页面,它似乎找不到文件(可能正在另一个目录中查找)。我怎样才能告诉它,所需的文件在哪里?我可以使用绝对路径,将其存储在某个位置并将其传递给。jsp页面

    • 我在eclipse(juno)中创建了一个简单的hello.jsp程序,当我试图通过run on server来运行这个jsp文件时,得到了以下错误 出现问题, 我已经删除了eclipse&tomcat服务器,然后重新安装。但是仍然得到相同的错误。我尝试选择服务器位置作为使用自定义位置,并给出不同的工作区路径。但什么都不管用。 我使用的是eclipse Juno、apache Tomcat-V6.

    • 我已经寻找了一段时间来解决这个问题。我的工作区中有一个项目文件夹(该文件夹基本上是我的根目录),其中有一个名为icon的文件。gif。在我的项目中,我有以下几点: 当我运行图标时,它在eclipse中运行良好,但导出的jar文件并不像在eclipse中那样显示图标。知道为什么吗?我想弄明白这件事快疯了。