Spring MVC不会从html表单保存到数据库

时间:2015-07-18 00:39:59

标签: java spring spring-mvc

您好我已经构建了一个简单的表单,应该将数据保存到数据库,但是当我提交表单时,数据不会被保存。我该如何解决这个问题?

在jsp中的表单

<form method="post">
    Product Name:<br>
    <input type="text" id="productName" name="product name">
    <br>
    Last name:<br>
    <input type="text" id="productSerial" name="serial number">
    <input type="submit" value="Submit">
</form>

控制器

@RequestMapping(value = "/saveNewContact", method = RequestMethod.POST)
    public ModelAndView saveContact(@RequestParam("productName") String productName,@RequestParam("productSerial") int productSerial) {

        Product product = new Product();

        product.setName(productName);
        product.setSerial(productSerial);

        ProductDao.saveNewProduct(product);
        return new ModelAndView("redirect:/");
    }

DAO实施

public void saveNewProduct(Product product) {

    jdbcTemplate = new JdbcTemplate(dataSource);

    String sql = "INSERT INTO product (name, serial)"
                  + " VALUES (?, ?)";
    jdbcTemplate.update(sql, product.getName(), product.getSerial());

}

2 个答案:

答案 0 :(得分:1)

您的视图中没有任何内容告诉控制器JSP文件中的哪些字段与您的模型相对应。您可以使用Spring form tags

来完成此操作
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<form:form method="post">
    Product Name:<br>
    <form:input type="text" id="productName" name="product name" path="productName" />
    <br>
    Last name:<br>
    <form:input type="text" id="productSerial" name="serial number" path="productSerial" />
    <input type="submit" value="Submit">
</form:form>

答案 1 :(得分:0)

在DB中保存表单使用@ModelAtribute(你的表)+你需要在数据库中定义你要添加的数据,如:

GET /javascripts/myScript1.js?_=1437207405398 200 2.356 ms - 22524
GET /javascripts/myScript2.js?_=1437207405399 200 1.873 ms - 29695