【问题标题】:Spring MVC - form handling with object request paramsSpring MVC - 使用对象请求参数处理表单
【发布时间】:2015-07-31 13:53:24
【问题描述】:

假设我的应用程序中有以下实体:

public class Payment {
    private Long id;
    private Service service;
    private User user;
    private BigDecimal amount;
}

public cass Service {
    private Long id;
    private String name;
    private BigDecimal minAmount;
    private BigDecimal maxAmount;
}

public class User {
    private Long id;
    private String login;
    private String password;
    private BigDecimal balance;
}

我需要创建允许用户处理付款的 html 表单(Payment 类的实例)。所以我需要在我的控制器方法中创建Payment 实例。我知道我可以添加到控制器方法中,例如,Service service 参数,它将由表单中具有相同名称的值填充。但是我怎样才能得到填充的Payment 对象呢?填充ServiceUser 对象?我需要以某种方式将整个Service 对象保存在我的服务器页面中吗?如何? 如果重要的话,我会使用 Thymeleaf。

【问题讨论】:

  • 你能把你的问题说得更清楚吗?

标签: java spring spring-mvc web thymeleaf


【解决方案1】:

在他们的 thymeleaf 文件中,只要你尊重类的字段结构,Spring 应该足够聪明,可以填充不同的字段。

<form th:object="${payment}" th:action="@{/sendPayment}" method="post">
      <input type="text" th:field="*{id}"/>
      <input type="text" th:field="*{service.name}"/>
      <input type="text" th:field="*{user.id}"/>
      <button type="submit">Submit</button>
</form>

然后在您的控制器上,您只需传递 Payment 对象:

@RequestMapping(value = "/sendPayment", method = RequestMethod.POST)
public String processPayment(final Payment payment){
    doSomethingWithPayment(payment);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 2015-04-28
    • 2012-10-23
    • 1970-01-01
    • 2015-07-05
    相关资源
    最近更新 更多