java - 在 Spring MVC Web 应用程序中提交表单时出现错误 404

标签 java spring jsp servlets spring-mvc

我正在尝试 www.tutorialspoint.com 中的示例用于 Spring MVC 表单处理。在浏览器中运行时单击页面中的“提交”按钮时,我收到以下信息:

HTTP Status 404 - /HelloWeb/addStudent

type Status report

message /HelloWeb/addStudent

description The requested resource is not available.


这是 web.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       
    xmlns="http://java.sun.com/xml/ns/javaee"   
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
                        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

    <display-name>NProject</display-name>

    <welcome-file-list>
        <welcome-file>student.jsp</welcome-file>
    </welcome-file-list>

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

    <servlet-mapping>
        <servlet-name>HelloWeb</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>


Servlet 配置文件是 HelloWeb-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-3.0.xsd
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context-3.0.xsd
                        http://www.springframework.org/schema/mvc
                        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <context:component-scan base-package="bundle" />

    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="/WEB-INF/messages" />
        <property name="cacheSeconds" value="3000" />
    </bean>

</beans>


Controller 文件是:

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class StudentCOntroller {

    @RequestMapping(value = "/student", method = RequestMethod.GET)
    public ModelAndView student(){
        return new ModelAndView("student", "command", new Student());
    }

    @RequestMapping(value = "/addstudent", method = RequestMethod.POST)
    public String addStudent(@ModelAttribute("student") Student student,
                            ModelMap  model,
                            BindingResult result) {
        model.addAttribute("name",student.getName());
        model.addAttribute("age",student.getAge());
        model.addAttribute("id",student.getId());

        return "result";
    }
}


这些是 JSP 文件:

student.jsp

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
    <title>Spring MVC Form Handling</title>
</head>
<body>
    <h2>Student Information</h2>
    <form:form method="POST" action="/HelloWeb/addStudent">
        <table>
            <tr>
                <td><form:label path="name">Name</form:label></td>
                <td><form:input path="name" /></td>
            </tr>
            <tr>
                <td><form:label path="age">Age</form:label></td>
                <td><form:input path="age" /></td>
            </tr>
            <tr>
                <td><form:label path="id">id</form:label></td>
                <td><form:input path="id" /></td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" value="Submit"/>
                </td>
            </tr>
        </table>  
    </form:form>
</body>
</html>


结果.jsp:

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
    <title>Spring MVC Form Handling</title>
</head>
<body>
    <h2>Submitted Student Information</h2>
    <table>
        <tr>
            <td>Name</td>
            <td>${name}</td>
        </tr>
        <tr>
            <td>Age</td>
            <td>${age}</td>
        </tr>
        <tr>
            <td>ID</td>
            <td>${id}</td>
        </tr>
    </table>  
</body>
</html>


请帮我解决这个问题。
提前致谢。

最佳答案

将您的操作从 Student.jsp 更改为

<form:form method="POST" action="addStudent">

应该可以。

关于java - 在 Spring MVC Web 应用程序中提交表单时出现错误 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16791702/

相关文章:

java - Spring RestTemplate getForObject() 给出 401 未授权异常

java - Shiro 与 SpringSecurity

java - 为什么这段 Java 代码比它下面的 Objective-C 代码运行得更快?

java - 如何将 list<SomeType> 转换为保留所有重复键和值的映射

java - Spring CriteriaBuilder 按名称搜索枚举

java - 如何在 jsp 页面中传递对象 [s :iterator] to an action class?

java - 使用 JSP 和 Wicket

java - JSP : How to get the URL Address of the page that redirects to another page in java?

java - 无法使用 Path 环境(Windows XP)全局执行 YUIcompressor!

Java Runnable 具有大量任务 Rainbow Table