代码之家  ›  专栏  ›  技术社区  ›  mike

为什么缺少<fieldset>标记会导致控制器无法获取表单值?

  •  0
  • mike  · 技术社区  · 7 年前

    我正在开发一个WebApp,它使用Spring MVC&Thymeleaf作为模板引擎。

    在我的HTML中,我得到了这样一个表单

    <form action="/submit" method="POST">
      First name: <input type="text" name="fname"/>
      Last name: <input type="text" name="lname"/>
      <input type="text" id="taskId" name="taskId" th:value="${taskId}" />
      <input type="submit" value="Submit"/>
    </form>
    

    我有个控制器

    @RequestMapping("/submit")
    public void addUser(String taskId, String fname, String lname, ModelMap map) {
        //save to db...
    }
    

    一开始我以为 taskId, fname, lname 将包含表单中的值,但它们都是 null

    最后,我尝试通过 <fieldset> 标签,它突然起作用了。即:

    <form action="/submit" method="POST">
      <fieldset>
        First name: <input type="text" name="fname"/>
        Last name: <input type="text" name="lname"/>
        <input type="text" id="taskId" name="taskId" th:value="${taskId}" />
        <input type="submit" value="Submit"/>
      </fieldset>
    </form>
    

    我想知道:

    为什么添加 <字段集> 会让一切正常吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Sumit    7 年前

    HTML- <fieldset> 标签是 用于将窗体中的相关元素分组 .
    基本上 <字段集> 标记在窗体中的相关元素周围绘制一个框。
    大多数在线表单设计糟糕、杂乱无章、难以使用。有一件事你可以做,使你的形式更好,是组织成逻辑部分。这个 <字段集> 元素提供了一种将窗体分解为逻辑部分的简单方法。 想了解更多信息- https://html.com/tags/fieldset/