Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么Spring MVC获得404?_Java_Spring_Spring Mvc - Fatal编程技术网

Java 为什么Spring MVC获得404?

Java 为什么Spring MVC获得404?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有一个简单的SpringMVC应用程序。我从报告中获得HTTP状态404。帮我解决这个问题。多谢各位 HTTP状态404–未找到 类型状态报告 Message/WEB-INF/users\u view.jsp 说明源服务器未找到当前表示形式 对于目标资源或不愿意披露其存在 ApacheTomcat/9.0.0.M26 我的控制器: @Controller public class UserController { @RequestMapping(value = "/users", m

我有一个简单的SpringMVC应用程序。我从报告中获得HTTP状态404。帮我解决这个问题。多谢各位

HTTP状态404–未找到

类型状态报告

Message/WEB-INF/users\u view.jsp

说明源服务器未找到当前表示形式 对于目标资源或不愿意披露其存在

ApacheTomcat/9.0.0.M26

我的控制器:

@Controller
public class UserController {

    @RequestMapping(value = "/users", method = RequestMethod.GET)
    public String showUsers(ModelMap model) {
        return "users_view";
    }
}
项目结构:

我的
web.xml

<display-name>User</display-name>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- Process application servlet -->
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:applicationContext.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

在DispatcherServlet中,您提供了路径
/WEB-INF/
,但在应用程序中它是
WEB-INF/view/


因此,在dispatcher servlet中将其更改为
/WEB-INF/view/
将解决问题

因为您的
jsp
位于
WEB-INF/view
下,
InternalResourceViewResolver
前缀指向
/WEB-INF/
,所以您有一个404错误。要修复此问题,请将前缀更改为
/WEB-INF/view/

InternalViewResolver出现问题

解决方案1:将前缀/WEB-INF/更改为/WEB-INF/view

解决方案2:从控制器返回字符串时,更改“用户\视图” 至“/查看/用户\查看”

如果您正在使用SpringMVC启动新项目,请尝试基于java的配置 提及

<?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"
       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.xsd">

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <context:component-scan base-package="ru.pravvich" />

</beans>