当前位置: 首页 > 知识库问答 >
问题:

(Spring,Thymeleaf)如何请求控制器“POST”与模型内的模型列表?

万俟承望
2023-03-14

我试过以下来源。但出现错误“对象的验证失败”。
此链接(http://bitbybitblog.com/forms-and-data-models-in-spring-mvc/)引用。
我想知道如何将表单数据(输入值)发送到模型“shop”的控制器而没有任何错误。
我认为模型“shop”和HTML表单数据不匹配。无法找到解决方案
如何修复“tag”输入名称?

public class Tag {
    private Long id;
    private String name;
    private Date regDate = new Date();
}
public class Shop {
    private Long id;
    private String name;
    private String url;
    private String featureImagePath;
    private List&ltTag> tag = new ArrayList<>();
    private ShopStatus status = ShopStatus.SHOW;
    private Date expireDate;
    private Date updateDate;
    private Date regDate;
}
Controller
@RequestMapping(value = "/edit/update", method = RequestMethod.POST) public String update(@ModelAttribute Shop shop) { if (shop.getId() == null) { shopService.createShop(shop); } return "redirect:/"; }
HTML/Thymeleaf
&ltform name="editor" method="post" action="/edit/update"> &ltfieldset> &ltinput name='name' th:value='${data.name}'/> &ltinput name='tag[0].id'/>&ltinput name='tag[0].name'/> </fieldset> </form>


出现此问题,请在浏览器上提交表单'editor'。

此应用程序没有/error的显式映射,因此您将此视为一种后退。
出现意外错误(Type=Bad Request,Status=400)。Object='shop'的验证失败。错误计数:1

共有1个答案

羊舌墨一
2023-03-14

我的线人没有问题。另一侧发生。
实际上HTML一侧有“expire date”输入。但发送到输入的控制器null值模型'shop'没有定义默认值)。
这是我的错误。

此外,如果follow在控制器源下面,我们可以使用“form”而不使用'th:object'。

控制器

@RequestMapping(value = "/edit", method = RequestMethod.GET)
public String edit(Model model) {
    model.addAttribute("data", new Shop());
    return "shop/edit";
}

@RequestMapping(value = "/edit/update", method = RequestMethod.POST)
public String update(@ModelAttribute Shop shop) {
    if (shop.getId() == null) {
        shopService.createShop(shop);
    }

    return "redirect:/";
}
 类似资料:
  • 我需要修改我的代码,使它成为一个模型-视图-控制器。因为我是一个完全的编程新手,如果我诚实的话,我会头疼。任何帮助如何做到这一点将不胜感激。 *在一个牧场上有200只忙碌的绵羊。这群羊由95只白羊、60只黑羊和45只白黑羊组成。牧羊人现在想把它们分开,这样相应的羊毛就可以按颜色剪了。帮他写一个小脚本,这样他就可以更好地点他的羊了。请使用变量、数组、数学运算符和函数实现前三点。提示:为了更好地概述,

  • 问题内容: 我正在尝试使用SceneBuilder用JavaFX构建一个简单的GUI,在这里我使用MenuItem(在中)选择一个根文件夹。然后,该文件夹的内容会在TextArea中列出,然后再次包装在TabPane中(,是嵌套的FXML,其中包括)。 我以这篇文章为起点来习惯MVC。不幸的是,由于我没有明确调用它,所以我不知道如何使嵌套的FXML侦听或绑定到外部FXML。现在,我只是停留在标签中

  • CodeIgniter 的开发基于 MVC(模型-视图-控制器)设计模式。MVC 是一种 用于将应用程序的逻辑层和表现层分离出来的软件方法。在实践中,由于这种分离 所以你的页面中只包含很少的 PHP 脚本。 模型 代表你的数据结构。通常来说,模型类将包含帮助你对数据库进行增删改查的方法。 视图 是要展现给用户的信息。一个视图通常就是一个网页,但是在 CodeIgniter 中, 一个视图也可以是一

  • 英文原文:http://emberjs.com/guides/controllers/representing-multiple-models-with-arraycontroller/ Ember.ArrayController用于代表一组模型。通过在路由的setupController方法中设置ArrayController的model属性,来指定其代表的模型。 可以将ArrayControl

  • 请问,在cesium中,导入外部glb模型后,如何通过鼠标控制模型的动作。 比如:导入车辆glb模型后,控制车门的打开关闭、后备箱的打开关闭、车窗的升降? 是必须使用three.js或Babylon.js么?

  • 英文原文:http://emberjs.com/guides/controllers/representing-a-single-model-with-objectcontroller/ Ember.ObjectController用于代表单一模型。通过在路由的setupController方法中设置ObjectController的model属性,来指定其代表的模型。 当模板向ObjectCon