弹簧-MVC + 百里香叶:处理复杂的形式
Spring-mvc + Thymeleaf: dealing with complex form
我正在使用spring-mvc和thymeleaf开发一个内部工具。
此工具的一部分用于创建我们保存在数据库中的实体。这个实体非常复杂;它包含许多属性和关系。其中一些关系包含列表和其他属性。
我有 2 个约束:
- 单页。没有"向导"。
- 仅将已完成的对象保存在数据库中。
现在,我并不是真的在问一个具体的问题。我知道我的方式在百里香叶,春@ModelAttribute等。
我的问题主要是你选择哪种策略,或者如何处理真正复杂的对象创建。
现在我可以看到3种方法:
-
带有百里香叶的渲染页面。每次需要将新元素添加到列表中时,我都会使用 Ajax 在服务器上添加新元素并重新渲染特定片段。所以用我的@ModelAttribute来回到服务器,只在最后保存。
-
使用百里香叶呈现基本页面。使用 JavaScript 创建 html 元素,而不是提交到@ModelAttribute,我将表单序列化为 JSON 并将此 JSON 提交到服务器。(客户端模型的一种)
-
使用百里香叶呈现基本页面。当我需要添加列表项时,使用 JavaScript 动态创建 html 元素(确保我输入正确的 name=" 以适应我的 Java 表单对象)并在最后提交整个内容。
我个人不确定在 1 或 2 之间。我觉得使用 JSON 处理复杂对象比表单提交容易得多。此外,带有子对象和属性的输入值/字段可能非常讨厌。拥有这种语法对我来说听起来不太好...
3 可能可以工作,但以我的拙见,使用 sub 属性完成 spring 数据绑定的方式缺乏一些细节(第 7.4.1 - http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html 节)。
你觉得怎么样?
就我个人而言,我使用 Thymeleaf 自己的动态字段管理来确保将对象和字段干净地添加到对象中。
因此,我将推荐选项4:Thymeleaf的动态字段管理。
阅读 http://www.thymeleaf.org/doc/tutorials/2.1/thymeleafspring.html#dynamic-fields。
我将其用于单字段添加以及嵌套表单的添加。诀窍不问问题。
希望有帮助。
- 可以't让我的if语句处理js中的html表单输入
- keyup事件处理程序更改焦点不适用于快速键入
- 如何使用jquery处理php循环通过元素
- angular.js没有'无法在PhoneGap中处理视图标记
- dropdown.js中的复杂事件处理
- 处理复杂类型时的声明方法
- UI网格单一筛选器无法处理复杂数据
- WebDev新手:我应该如何处理将复杂对象从PHP传递到PHP(非连续)
- 弹簧-MVC + 百里香叶:处理复杂的形式
- 使用 REST 和 Javascript 处理复杂对象的最佳实践
- 复杂 JSON 处理期间的“范围错误: 超出最大调用堆栈大小”
- 如何在 Javascript 中处理具有复杂名称的 JSON 属性
- 在主干模型/视图上处理更复杂的验证逻辑(必填字段等)的最佳方式
- 使用grunt watch复杂处理从LESS到CSS的多个文件夹
- javascript库处理复杂的2D几何
- 如何使用手柄来处理像这样复杂的JSON数据
- 处理JavaScript复杂对象
- 处理复杂web界面的javascript事件
- 如何处理复杂数据结构的列表
- 如何使用Visual Studio's智能感知处理复杂的JS文件