2015-05-19 50 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); 
}