我对spring非常陌生,我尝试创建一个表单,它将创建一个新项,然后将其保存到MYSQL数据库中。这里附加的是整个控制器类和html表单。
package com.emil.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.ui.Model;
import com.emil.model.Item;
import com.emil.repositories.ItemRepository;
@Controller
public class ItemController{
@Autowired
private ItemRepository itemRepository;
@RequestMapping(path="/items", method=RequestMethod.GET)
public String getItems(Model model){
model.addAttribute("items", itemRepository.findAll());
return "items";
}
@RequestMapping(path="/item", method=RequestMethod.GET)
public String getItem(Model model){
model.addAttribute("item", new Item());
return "item";
}
@RequestMapping(path="/item", method=RequestMethod.POST)
public void addNewItem(@ModelAttribute Item item){
Item newItem = new Item();
newItem.setItemDesc(item.getItemDesc());
}
}
发布于 2017-04-06 08:43:52
此错误指示您可能在提交的项中有错误,所需字段可能为null或提交的值无法解析。要查看实际错误,可以使用以下内容
@RequestMapping(path="/item", method=RequestMethod.POST)
public void addNewItem(@ModelAttribute Item item, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
bindingResult.getAllErrors().forEach(e -> System.out.println(e.toString()));
// Handle error
}
Item newItem = new Item();
newItem.setItemDesc(item.getItemDesc());
}如果您知道如何调试(如果您不应该尝试学习它:-),您可以在第一行放置一个断点并检查BindingResult。
https://stackoverflow.com/questions/43181354
复制相似问题