Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
Java 错误ID应自动递增时为空_Java_Spring_Spring Mvc - Fatal编程技术网

Java 错误ID应自动递增时为空

Java 错误ID应自动递增时为空,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在尝试创建一个web表单,允许用户向数据库添加项目。问题是,当我提交上述表格时,我会出现以下错误: 字段“id”上的对象“产品”中的字段错误:拒绝值[null];代码[类型不匹配.products.id,类型不匹配.id,类型不匹配.int,类型不匹配];论据 这是我的jsp页面: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEn

我正在尝试创建一个web表单,允许用户向数据库添加项目。问题是,当我提交上述表格时,我会出现以下错误:

字段“id”上的对象“产品”中的字段错误:拒绝值[null];代码[类型不匹配.products.id,类型不匹配.id,类型不匹配.int,类型不匹配];论据

这是我的jsp页面:

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Add Item Page</title>
</head>
<body>
<h1> Add an Item </h1>
    <form action="/addItem" method="post">
            <div class="form-group">
                <label for="name">Name</label>
                <input class="form-control" type = "text" id="name" name="name" required minlength="2" autocomplete="off">
            </div>
            <div class="form-group">
                <label for="price">Price</label>
                <input class="form-control" type = "text" id="price" name="price" required>
            </div>
            <div class="form-group">
                <label for="quantity">Quantity</label>
                <input class="form-control" type="number" id="quantity" name="quantity" required>
            </div>
            <div class="form-group">
                <label for="foodGroup">Food Group</label>
                <input class="form-control" type="text" id="foodGroup" name="foodgroup" required>
            </div>

            <button type="submit" class="btn btn-primary" value="submit">Add Product</button>
        </form>
            <a href="/" class="btn btn-secondary">Home</a>
</body>
最后,控制器:

@Controller
public class MainController
{

    @Autowired
    private ProductsDAO productsDAO;

    @GetMapping("/")
    public ModelAndView showHome()
    {
        ModelAndView mav = new ModelAndView("index");
        return mav;
    }

    @RequestMapping("/showProducts")
    public ModelAndView showProducts()
    {
        List<Products> leListOfProducts = productsDAO.findAll();
        ModelAndView mav = new ModelAndView("showProducts", "product", leListOfProducts);
        return mav;
    }

    @RequestMapping("/addItem")
    public ModelAndView showAddItemPage()
    {
        return new ModelAndView("addItem");
    }

    @PostMapping("/addItem")
    public ModelAndView addProduct(Products product)
    {
        productsDAO.create(product);
        return new ModelAndView("redirect:/index");
    }
}
@控制器
公共类主控制器
{
@自动连线
私人产品;
@GetMapping(“/”)
公共模型和视图显示主页()
{
ModelAndView mav=新的ModelAndView(“索引”);
返回mav;
}
@请求映射(“/showProducts”)
公共模型和视图展示产品()
{
List leListOfProducts=productsDAO.findAll();
ModelAndView mav=新的ModelAndView(“展示产品”、“产品”、leListOfProducts);
返回mav;
}
@请求映射(“/addItem”)
公共模型和视图显示AddItemPage()
{
返回新的ModelAndView(“addItem”);
}
@后映射(“/addItem”)
公共模型和视图添加产品(产品)
{
productsDAO.创建(产品);
返回新的ModelAndView(“重定向:/index”);
}
}
这是表列及其设置的图片

我真的很感激你能提供的一切帮助

最好的


JBird

我怀疑你的构造函数就是问题所在。尝试删除构造函数中的id,因为它是通过第三方方式生成的。此外,我认为您永远不会出于任何理智的原因需要setId()方法。

我怀疑您的构造函数就是问题所在。尝试删除构造函数中的id,因为它是通过第三方方式生成的。此外,我认为您永远不会出于任何理智的原因需要setId()方法谢谢你的帮助@伊万迪米特罗夫:你能把你的评论作为回答吗?如果你这样做,我可以相信你的答案,并将此线程标记为已解决。
@Controller
public class MainController
{

    @Autowired
    private ProductsDAO productsDAO;

    @GetMapping("/")
    public ModelAndView showHome()
    {
        ModelAndView mav = new ModelAndView("index");
        return mav;
    }

    @RequestMapping("/showProducts")
    public ModelAndView showProducts()
    {
        List<Products> leListOfProducts = productsDAO.findAll();
        ModelAndView mav = new ModelAndView("showProducts", "product", leListOfProducts);
        return mav;
    }

    @RequestMapping("/addItem")
    public ModelAndView showAddItemPage()
    {
        return new ModelAndView("addItem");
    }

    @PostMapping("/addItem")
    public ModelAndView addProduct(Products product)
    {
        productsDAO.create(product);
        return new ModelAndView("redirect:/index");
    }
}