【问题标题】:HTTP Status 404 - Not Found in Spring MVC 4 applicationHTTP 状态 404 - 在 Spring MVC 4 应用程序中未找到
【发布时间】:2017-12-29 22:05:15
【问题描述】:

我有带有 Maven 的 NetBeans Spring MVC 项目。但我收到以下错误:HTTP 状态 404 - 未找到。我怎样才能避免这个错误? 层次结构:

-FinalWebStore
   -Web Pages
     -WEB-INF
          +views
          web.xml
          mvc-dispatcher-servlet.xml
   -Source Packages
      +com.karans.finalwebstore.controllers
      +com.karans.finalwebstore.daoimps
      +com.karans.finalwebstore.daos
      +com.karans.finalwebstore.models
   +Dependecies
...

这是我的文件: web.xml:

    <web-app id="WebApp_ID" version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Spring Web MVC Application</display-name>


    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>



    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>

</web-app>

mvc-dispatcher-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">


   <bean name="/login"
        class="com.karans.finalwebstore.controllers.UserController" />


    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
        <property name="prefix">
            <value>/WEB-INF/views/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>
    <bean id="ds"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">

        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/webstore" />
        <property name="username" value="root" />
        <property name="password" value="123456" />
    </bean>


    <bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">  
        <property name="dataSource" ref="ds"></property>  
    </bean>  


    <bean id="ProductDAOimpl" class="com.karans.finalwebstore.daoimps.ProductDAOimp">

        <property name="template" ref="jt"></property>
    </bean>

    <bean id="UserDAOimpl"    class="com.karans.finalwebstore.daoimps.UserDAOimp">

        <property name="template" ref="jt"></property>  
    </bean>
    <bean id="CartDAOimpl" class="com.karans.finalwebstore.daoimps.CartDAOimp">

        <property name="template" ref="jt"></property>
    </bean>
    <bean id="UserController"    class="com.karans.finalwebstore.controllers.UserController">
        <property name="userdaoimp" ref="UserDAOimpl"></property>
    </bean>



</beans>

用户控制器.java:

    package com.karans.finalwebstore.controllers;
import com.karans.finalwebstore.daoimps.UserDAOimp;
import org.springframework.beans.factory.annotation.Autowired;
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
public class UserController {
    @Autowired
    UserDAOimp userdaoimp;

    public void setUserdaoimp(UserDAOimp userdaoimp) {
        this.userdaoimp = userdaoimp;
    }

    public String login(){


        return "login";
    }


}

login.jsp:

<%-- 
    Document   : login
    Created on : Jul 15, 2017, 2:57:13 PM
    Author     : raziyeh
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>LOG IN PAGE</title>
    </head>
    <body>
        <h1>Hello World Taze avvaleshe!</h1>
    </body>
</html>

而且我认为其他文件并不重要。

【问题讨论】:

  • 我的回答没有解决你的问题吗?我看到你改变了你的代码。如果还有其他问题,那就再问一个问题。这不是一种方式,您可以通过编辑上一个问题来更改您的问题并在另一个问题中提问
  • 对不起,我不知道这对你很重要。:( :(
  • 是的,这对社区很重要。如果 StackOverflow 社区中的任何人关注您的问题,他们可能会被误导。对于我们(谁回答了您的问题),我们已经根据您的第一次编辑回答了。因此,它对可能实施我们给定代码的追随者产生了不良影响。如果我的回答对您有意义,请接受,这样您的问题的关注者可能会受益。希望你能理解这个问题。

标签: java spring spring-mvc dispatcher


【解决方案1】:

将您的登录功能更改为

@RequestMapping(value = "/")
public String login(){
    return "login";
}

同时更改以下部分中的web.xml 文件:

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

您需要从mvc-dispatcher-servlet.xml中删除以下行

<bean name="/login"
        class="com.karans.finalwebstore.controllers.UserController" />

另外,确保login.jsp 文件包含在/WEB-INF/views/ 文件夹下。

【讨论】:

  • @masoomi,我看到您在我回答您的问题后编辑了您的问题并且不接受我的回答。这是不恰当的,并且会对该问题和答案的追随者产生不良影响。如果您遇到其他问题,请向社区提出其他问题。
【解决方案2】:

尝试以下方法:

将 Spring MVC 命名空间添加到您的 mvc-dispatch-servlet.xml 文件 xmlns:mvc="http://www.springframework.org/schema/mvc"。您还需要使用此“http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd”更新 xsi:schemaLocation

第二次在文件中添加。如果我没记错的话,这可以处理@RequestMapping 注释。

第三,删除以名称“/login”声明的bean。它与文件底部声明的 UserController 类型相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-12
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2017-07-23
    • 2021-08-29
    相关资源
    最近更新 更多