![](/img/trans.png)
[英]How to replace “undefined” with zero value in javascript or form to pass to spring-mvc controller?
[英]Spring-mvc + Thymeleaf: dealing with complex form
我正在使用spring-mvc和thymeleaf開發內部工具。
此工具的一部分用於創建我們保存在數據庫中的實體。 這個實體非常復雜; 它包含許多屬性和關系。 其中一些關系包含列表和其他屬性。
我有2個約束:
現在,我並沒有真正要求具體問題。 我知道我的方式繞着百里香,春天@ModelAttribute等。
我的問題主要是你選擇哪種策略或如何處理真正復雜的對象創建。
現在我可以看到3種方法:
用百里香葉渲染頁面。 每次需要將新元素添加到列表中時,我都使用Ajax在服務器上添加新元素並重新呈現特定片段。 所以用我的@ModelAttribute在服務器上來回做,最后只保存。
使用thymeleaf渲染基本頁面。 使用JavaScript創建html元素而不是提交給@ModelAttribute,我將我的表單序列化為JSON並將此JSON提交給服務器。 (客戶端模型的種類)
使用thymeleaf渲染基本頁面。 當我需要添加列表項時(確保我使用正確的名稱=“”來適應我的Java表單對象)並使用JavaScript動態創建html元素並在最后提交整個事物。
我個人不確定在1或2之間。我覺得使用JSON比使用表單提交更容易處理復雜對象。 此外,具有子對象和屬性的輸入值/字段可能非常討厭。 擁有這種語法對我來說聽起來不太好......
3可能可以工作,但彈簧數據綁定與子屬性完成的方式在我的拙見中缺乏一些細節(第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 。
我將它用於單個字段添加以及添加嵌套表單。 訣竅沒問題。
希望有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.