2013-05-28 70 views
0

我正在为Spring MVC表单处理尝试一个来自www.tutorialspoint.com的示例。我越来越点击页面中的提交按钮时,在浏览器中运行时,以下几点:在Spring MVC Web应用程序中提交表单时出现错误404

HTTP Status 404 - /HelloWeb/addStudent 

type Status report 

message /HelloWeb/addStudent 

description The requested resource is not available. 


这是网络 .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> 


控制器文件是:

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> 


result.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> 


请帮我找出这个问题。
在此先感谢。

回答

1

从student.jsp你的行动更改为

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

它应该工作。

+0

在OP的情况下,您的建议没有什么区别。请参阅OP在问题主体中讨论的教程链接。 – informatik01

+0

**非常感谢** – user2083175

+0

@ user2083175那么原因是什么? **使用'action =“addStudent”'而不是'action =“/ HelloWeb/addStudent”'**绝对不是**原因。那它是什么? – informatik01

0

在控制器中定义软件包。

package bundle; 
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; 
0

在你student.jsp,行更改为

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

它的工作原理

相关问题