java - Tomcat 使用 Spring MVC 返回 404 页面;未到达 Controller

标签 java spring jsp spring-mvc tomcat

我有一个 Controller 和一个 JSP。就这些。我将我的项目导出为 .war 并将其放入在 Linux mint 上运行的 tomcat webapps 目录中。当我在地址栏中键入 localhost:8080/filename 时,它会返回 Tomcat 404 消息。

Controller :

package web.controllers;

import java.util.Random;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping(value = "/")
public class HomeController 
{

    @RequestMapping(method = RequestMethod.GET)
    public String displayHomePage(Model model) 
    {
        model.addAttribute("display",new Random().nextInt());
        return "/index";
    }
}

index.jsp:

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>Random int: ${display}</p>
</body>
</html>

JSP 文件位于 WebContent 下的 WEB-INF 文件夹中(Eclipse 动态 webapps 项目设置的默认设置)。项目引用了所有 Spring jar,没有编译错误。我在这里缺少什么?

最佳答案

你配置了一个view resolver吗? ?这将从您的返回值中推断出一个 View ,例如您的 JSP 文件,例如“索引”。

如果您使用的是 Spring Boot,只需在 application.properties 中添加几行即可。例如,在我的一个项目中,我将我的 JSP 放在 WEB-INF/jsp 文件夹中,并在我的 application.properties 中包含以下几行:

spring.view.prefix: /WEB-INF/jsp/
spring.view.suffix: .jsp

然后返回 "index"(没有开始斜杠)将得到 WEB-INF/jsp/index.html

关于java - Tomcat 使用 Spring MVC 返回 404 页面;未到达 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32099882/

相关文章:

java - 为什么 jetty :run doesn't work with resteasy java project?

java - Spring Repository 删除规范

java - rfcomm 无法在树莓派 3 上与 tomcat7 配合使用

java - 在 Struts 2 中启动服务器时,如何在操作类中获取 UTF-8 文本?

jsp - Web 应用程序停止时无法注销 JDBC

java - 如何将Oracle9i与JAVA或JSP集成?

java - 无法解决 "local variable needs to be final"

Spring MVC,捕获@ModelAttribute等对象列表

java - 如何将@Value注入(inject)到setter中?

java.lang.NoClassDefFoundError : org/hibernate/cache/spi/RegionFactory - When upgrading from spring 3 to spring 4 错误