首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Spring Boot JSP 404

Spring Boot JSP 404
EN

Stack Overflow用户
提问于 2015-04-22 04:53:23
回答 14查看 71.2K关注 0票数 53

我正尝试在我的Spring Boot服务中添加一个jsp页面。我的问题是,每次我试图转到那个页面时,我都会遇到这样的情况:

白标错误页

这个应用程序没有显式的/error映射,所以您认为这是一种后备。

Tue Apr 21 23:16:00EEST 2015出现意外错误(type=Not Found,status=404)。没有可用的消息

我已经在我的application.properties中添加了前缀和后缀:

代码语言:javascript
复制
spring.view.prefix: /WEB-INF/jsp/
spring.view.suffix: .jsp

这是我的控制器类:

代码语言:javascript
复制
@Controller
public class MarkerController {
    @RequestMapping(value="/map")
    public String trafficSpy() {
        return "index";
    }
}

我的Application类:

代码语言:javascript
复制
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
    private static Logger logger = Logger.getLogger(Application.class.getName());

    public static void main(String[] args) {
            logger.info("SPRING VERSION: " + SpringVersion.getVersion());
            SpringApplication.run(Application.class, args);
        }
}

和index.jsp:

代码语言:javascript
复制
<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html lang="en">

<body>
    <h1>Hello, World!!!</h1>


    <p>JSTL URL: ${url}</p>
</body>

</html>

这是src文件结构:

代码语言:javascript
复制
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── example
│   │   │           └── internetprogramming
│   │   │               └── myserver
│   │   │                   └── server
│   │   │                       ├── Application.java
│   │   │                       ├── config
│   │   │                       │   └── DatabaseConfig.java
│   │   │                       ├── controller
│   │   │                       │   └── MarkerController.java
│   │   │                       ├── dao
│   │   │                       │   ├── MarkerDaoImplementation.java
│   │   │                       │   └── MarkerDaoInterface.java
│   │   │                       ├── Marker.java
│   │   │                       └── service
│   │   │                           ├── MarkerServiceImplementation.java
│   │   │                           └── MarkerServiceInterface.java
│   │   ├── resources
│   │   │   └── application.properties
│   │   └── webapp
│   │       └── WEB-INF
│   │           └── jsp
│   │               └── index.jsp
EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2015-04-22 06:11:04

确保在依赖项列表中有jasper和jstl:

代码语言:javascript
复制
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

这是一个有效的入门项目-- https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-web-jsp

票数 71
EN

Stack Overflow用户

发布于 2017-02-22 14:07:23

在较新版本的Spring中,需要在application.properties文件中放入以下内容:

spring.mvc.view.prefix=/WEB-INF/jsp/

spring.mvc.view.suffix=.jsp

另外,JSP文件需要放在src/main/resources/META-INF/resources/WEB-INF/jsp下。

票数 23
EN

Stack Overflow用户

发布于 2019-05-19 14:16:06

这是我关于白标错误页的工作解决方案:找不到视图页(Jsp)

在POM.xml,确保打包是"war“,并添加tomcat/jasper依赖项

代码语言:javascript
复制
<packaging>war</packaging>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

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

在application.properties处添加前缀/后缀

代码语言:javascript
复制
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

**如果使用Intellij,则必须设置Web资源目录。在项目结构(ctrl+alt+shift+ S) >方面>选择网站(您的应用程序)>添加(+)网站资源目录(我的是......\src\main\webapp)

**如果您有多个模块(在intellij),请以$MODULE_WORKING_DIR$的身份编辑configuration>选择springboot您的应用程序> Configuration tab>工作目录

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29782915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档