2015-05-19 98 views
0

假设我有我的应用程序以下实体:Spring MVC的 - 形式对象请求处理PARAMS

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,如果它很重要。

+0

你能说出你的问题更明确的方式? – mtyurt

回答

2

在他们的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> 

然后在你的控制器,你只需通过支付对象:

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