java - 使用 Maven 在 SpringMVC 上出现错误 404

标签 java spring maven spring-mvc

我不断收到此错误 404,并且我已经完成/查看了 StackOverflow 上几乎所有相关的解决方案,但仍然没有解决我的问题。为什么我会出现这个错误?

当我这样做时http://localhost:8080它给了我我的index.jsp页面,但是当我这样做时 http://localhost:8080/index.jsphttp://localhost:8080/WebApp/index.jsp它给了我 404 错误。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

调度程序-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">


<mvc:annotation-driven />

        <context:component-scan base-package="test.app" />
        <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value = "/WEB-INF/views/"/>
            <property name="suffix" value=".jsp" />
        </bean>



</beans>

applicationContext.xml

索引.jsp

<%--
  Created by IntelliJ IDEA.
  User: reaganyuan
  Date: 12/31/17
  Time: 12:42 PM
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>$Title$</title>
</head>
<body>
<p>HELLO WORLD</p>
</body>
</html>

TestController.java

package test.app;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
public class TestController {
    @RequestMapping(value="/")
    public String test()
    {
        return "index";
    }

}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>test</groupId>
    <artifactId>app</artifactId>
    <version>1.0-SNAPSHOT</version>

   <dependencies>

       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-webmvc</artifactId>
           <version>4.3.13.RELEASE</version>
       </dependency>



       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-core</artifactId>
           <version>4.3.13.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-beans</artifactId>
           <version>4.3.13.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context</artifactId>
           <version>4.3.13.RELEASE</version>
       </dependency>

       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-web</artifactId>
           <version>4.3.13.RELEASE</version>
       </dependency>

   </dependencies>

</project>

我的项目结构 project structure

编辑:我在 Controller 中将 index() 更改为 test(),但这没有执行任何操作。

最佳答案

在 Web.xml 中尝试将 url-pattern 更改为/* ,如下所示

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

关于java - 使用 Maven 在 SpringMVC 上出现错误 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48047128/

相关文章:

android - 在 build.gradle 中找不到参数的方法 uploadArchives()

java - 正则表达式在固定位置匹配缺失的组

java - 如何将遗留 Java/J2EE 网站移植到现代脚本语言(PHP、Python/Django 等)?

java - Spring Controller 中嵌套方法的@PreAuthorize

java - 如何设置 eclipse/webapp maven?

maven - Arquillian 收缩包装

Java线程,保持相同数量的线程运行

java - 是否可以将枚举属性的空值存储到数据库中?

java - 出现 OutOfMemoryError 后,Spring REST 服务不会关闭

java - 如何在上下文初始化后创建 session bean