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

无法在spring mvc中获取thymeleaf表单数据

连文栋
2023-03-14

我是Thymeleaf的新手,我尝试使用Thymeleaf和Spring MVC执行一个简单的表单提交示例。我根据Thymeleaf留档编写了代码。但是我在控制器中得到空值。

<form action="thymeleafexample/thymeleaf.html" th:action="@{/thymeleaf}"
      th:object="${loginModel}" method="post">
    <table>
        <tr>
            <td th:text="#{emp.empId.label}">Emp ID</td>
            <td><input type="text" th:field="*{empId}"/></td>
        </tr>
        <tr>
            <td th:text="#{emp.empName.label}">Emp Name</td>
            <td><input type="text" th:field="*{empName}"/></td>
        </tr>
        <tr>
            <td>
                <button type="submit" name="save" th:text="#{${'.emp.button.label'}}">submit</button>
            </td>
        </tr>
    </table>
</form>

我的控制器是

@RequestMapping(value = "/thymeleaf", params = {"save"})
public String save(@Validated LoginModel loginModel, final BindingResult bindingResult, ModelMap model) {
    if (bindingResult.hasErrors()) {
        return "thymeleaf";
    }
    System.out.println(loginModel);
    System.out.println(loginModel.getEmpName());
    return "/thymeleaf";
}

我的模型课是

public class LoginModel {

    private String empName;
    private int empId;

    public void setEmpId(int empId) {
        this.empId = empId;
    }

    public int getEmpId() {
        return empId;
    }

    public String getEmpName() {
        return empName;
    }

    public void setEmpName(String empName) {
        this.empName = empName;
    }
}

共有1个答案

马国源
2023-03-14

我遇到了同样的问题,正如OP所提到的,为POJO(Model)类创建了一个构造函数,其中包含必需的成员字段,并使用th:field=*{foo}而不是th:value=${foo}解决了我的问题。

 类似资料:
  • 问题内容: 我的函数中有一个简单的表单,如下所示: 我应该在访问和字段中写些什么? 问题答案: 使用输入上的事件来更新组件的状态并在以下位置访问它: 工作提琴。 另外,阅读文档,有一整节专门讨论表单处理:表单 以前,您还可以使用React的双向数据绑定帮助器mixin来实现相同的功能,但是现在不建议使用它来设置值和更改处理程序(如上所述): 文档在这里:双向绑定帮助器。

  • 对于每道菜,我都有一个输入来指定菜的数量,但是如何将它转换为DishQuantityMap?其中firstInteger-dishId,second-订购的菜肴数量。 我知道我的代码中缺少th:字段,这是因为我不知道如何正确地实现它。

  • 我想知道如何在spring表单mvc平台中传输参数。首先,下面的代码是spring格式的java文件。 下一个文件是有界编辑。html文件 表单的输入链接url如下所示, 但是spring mvc控制器代码中抛出了异常。 例外的是 我不知道如何在Spring-Thymeleaf表单模板中传递参数。

  • 问题内容: 我需要从表单获取数据。 我使用JavaScript创建表单: 那么我需要从输入字段中获取数据。 这是我的视图函数: 但我得到一个错误: 帮我从表格中获取数据。 问题答案: 从Flask的请求对象获取表单数据: 你还可以设置默认值以避免400错误,如下所示:

  • 但是,在加载模板时,我得到了以下异常。 我不知道为什么要在键为时将其解析为。有什么方法可以让Thymeleaf将值解析为吗?

  • 我在*.html的顶部有这个复选框。我想在“表单”中使用“ischecked”输入的值,比如将1/0(true/false)设置为隐藏输入: