Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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
Forms Spring3MVC表单未在数据库中保存数据_Forms_Spring_Model View Controller - Fatal编程技术网

Forms Spring3MVC表单未在数据库中保存数据

Forms Spring3MVC表单未在数据库中保存数据,forms,spring,model-view-controller,Forms,Spring,Model View Controller,我试图运行一个简单的Spring3MVC项目来保存表单数据,但是当我提交数据时,页面会转到add.html,其中包含空表单,并且没有数据保存在Mysql中,也没有数据显示在页面上 控制器 package com.app.a; /** * Handles requests for the application home page. */ @Controller @RequestMapping(value="/") public class HomeController { @Au

我试图运行一个简单的Spring3MVC项目来保存表单数据,但是当我提交数据时,页面会转到add.html,其中包含空表单,并且没有数据保存在Mysql中,也没有数据显示在页面上

控制器

package com.app.a;

/**
 * Handles requests for the application home page.
 */
@Controller
@RequestMapping(value="/")
public class HomeController {

    @Autowired
    private Personrepo personRepo;

    @RequestMapping(method=RequestMethod.GET)
    public String showForm(ModelMap model){
        List<Person> persons = personRepo.getAll();
        model.addAttribute("persons", persons);
        Person person = new Person();
        person.setId(UUID.randomUUID().toString());

        model.addAttribute("person", person);
        return "home";
    }

    @RequestMapping(value="/add", method=RequestMethod.POST)
    public ModelAndView add(@ModelAttribute(value="person") Person person,BindingResult result){

        ModelAndView mv = new ModelAndView("home");
        if(!result.hasErrors()) {
            personRepo.add(person);
            person = new Person();
            person.setId(UUID.randomUUID().toString());
            mv.addObject("person", person);
        }
        mv.addObject("persons", personRepo.getAll());
        return mv;
    }

    @RequestMapping(value="/edit", method=RequestMethod.POST)
    public ModelAndView edit(@ModelAttribute(value="person") Person person,BindingResult result) {

        ModelAndView mv = new ModelAndView("home");
        if(!result.hasErrors()) {
            personRepo.edit(person);
            person = new Person();

            mv.addObject("person", person);
        }
        mv.addObject("persons", personRepo.getAll());
        return mv;
    }

    @RequestMapping(value="/delete", method=RequestMethod.POST)
    public ModelAndView update(@ModelAttribute(value="person") Person person,BindingResult result){
        ModelAndView mv = new ModelAndView("home");
        if(!result.hasErrors()) {
            personRepo.delete(person.getId());

            //personRepo.delete(person);
            person = new Person();

            mv.addObject("person", person);
        }
        mv.addObject("persons", personRepo.getAll());
        return mv;
    }
}
package com.app.a;
/**
*处理应用程序主页的请求。
*/
@控制器
@请求映射(value=“/”)
公共类家庭控制器{
@自动连线
私人Personrepo Personrepo;
@RequestMapping(method=RequestMethod.GET)
公共字符串showForm(ModelMap模型){
List persons=personRepo.getAll();
模型。添加属性(“人员”,人员);
Person=新人();
person.setId(UUID.randomuid().toString());
model.addAttribute(“person”,person);
返回“家”;
}
@RequestMapping(value=“/add”,method=RequestMethod.POST)
公共模型和视图添加(@modeldattribute(value=“person”)person,BindingResult){
ModelAndView mv=新的ModelAndView(“主页”);
如果(!result.hasErrors()){
人事报告新增(人);
person=新的person();
person.setId(UUID.randomuid().toString());
mv.添加对象(“人”,人);
}
mv.addObject(“persons”,personRepo.getAll());
返回mv;
}
@RequestMapping(value=“/edit”,method=RequestMethod.POST)
公共模型和视图编辑(@modeldattribute(value=“person”)person,BindingResult){
ModelAndView mv=新的ModelAndView(“主页”);
如果(!result.hasErrors()){
个人报告编辑(个人);
person=新的person();
mv.添加对象(“人”,人);
}
mv.addObject(“persons”,personRepo.getAll());
返回mv;
}
@RequestMapping(value=“/delete”,method=RequestMethod.POST)
公共模型和视图更新(@modeldattribute(value=“person”)person,BindingResult){
ModelAndView mv=新的ModelAndView(“主页”);
如果(!result.hasErrors()){
personRepo.delete(person.getId());
//删除(人);
person=新的person();
mv.添加对象(“人”,人);
}
mv.addObject(“persons”,personRepo.getAll());
返回mv;
}
}
Home.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core"%>

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
    <table align="center">
        <c:forEach items="${persons}" var="person">
            <tr>
                <td>Welcome:</td>
                <td><c:out value="${person.firstName}" /></td>
            </tr>
            <tr>
                <td>Your lastname:</td>
                <td><c:out value="${person.lastName}" /></td>
            </tr>
        </c:forEach>
    </table>

    <form:form modelAttribute="person" method="post" action="add.html">
        <form:hidden path="id" />

        <table>
            <tr>
                <td><form:label path="firstName">First Name:</form:label></td>
                <td><form:input path="firstName" /></td>
            </tr>
            <tr>
                <td><form:label path="lastName">Last Name</form:label></td>
                <td><form:input path="lastName" /></td>
            </tr>
            <tr>
                <td><form:label path="money">Money</form:label></td>
                <td><form:input path="money" /></td>
            </tr>
        </table>
        <input type="submit" value="Save" />
    </form:form>

</body>
</html>

欢迎:
您的姓氏:
名字:
姓
钱

从外观上看,除非您正在进行内容协商,否则您没有映射到URL的控制器方法
add.html

比较:

<form:form modelAttribute="person" method="post" action="add.html">
成功

<form:form modelAttribute="person" method="post" action="add">


你应该很好。

谢谢Juliano格式化我的帖子。你能告诉我你是如何格式化这段代码的吗?我尝试了Ctrl+K。选择一组行进行格式化,然后单击工具栏上的{}选项。post
Personrepo
。你使用ORM/JPA吗?这是如何配置的?您在哪里打开会话?我在服务类中使用SpringJDBC模板取决于servlet映射。如果servlet映射被定义为
*.html
,那么它应该按原样工作。
<form:form modelAttribute="person" method="post" action="add">