【问题标题】:Submit nested forms in Thymeleaf在 Thymeleaf 中提交嵌套表单
【发布时间】:2016-03-30 05:14:42
【问题描述】:

我正在使用 spring boot、spring mvc 和 thymeleaf 开发一个 Web 应用程序。

我在模板中有两个具有不同操作的嵌套表单和两个提交按钮,如下所示:

<form name="form1" action="#" th:action="@{/action1}" method="post">
...
     <form name="form2" action="#" th:action="@{/action2}" method="post">
       ...
       <button type="submit" value="Import"/>                           
     </form>
...
<button type="submit" value="Validate"/>    
</form>

如何让“导入”按钮提交 form2 而不是 form1...??

谢谢。

【问题讨论】:

  • 如果您只想提交一个表单,为什么还要将一个表单嵌套在另一个表单中?
  • 嵌套表单不符合 HTML 规范(包括 HTML5):w3.org/TR/html5/forms.html#the-form-element 如果您能更详细地解释您的用例,即 action1 和 action2 之间有什么区别(为什么可以'它们只是两种不同的形式吗?),我们可能会提供更多帮助。

标签: spring-mvc nested-forms thymeleaf


【解决方案1】:

您不能有嵌套表单,因为一个表单不能有另一个表单作为后代。如您所知,您可以在没有嵌套的主体中拥有许多表单。您可以通过共享公共 backbean 来拥有一套用于导入和另一套用于剩余。

请参考link

4.10.3 表单元素

内容模型:

流式内容,但没有表单元素后代。

 <body> <form id="outer-form" class="form-horizontal form" th:action="@{/urlOuter}" th:object="${myBackBeanObject}" method="post">
    <fieldset id="form-fieldset">
        <button id="save" name="save" class="btn btn-primary">Outer Save</button>
    </fieldset>
 </form>

<form id="inner-form" class="form-horizontal form" th:action="@{/urlInner}" th:object="${myBackBeanObject}" method="post">
    <fieldset id="form-fieldset">
        <button id="save" name="save" class="btn btn-primary">inner Save</button>
    </fieldset>
 </form></body>     

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-16
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 2016-04-27
    • 2018-07-23
    • 1970-01-01
    相关资源
    最近更新 更多