2017-02-16 29 views
0

我具有低於模型類如何在Spring MVC中重用多個表單的模型?

public class User { 
private String name; 
private String age; 
private Address address; 
private Contact contact; 
// getters and setters 
} 
class Address { 
private String address1; 
private String address2; 
private String state; 
private String city; 
// getters and setters 
} 
class Contact { 
private String phone; 
private String fax; 
// getters and setters 
} 

我使用這樣的用戶爲多個形成用於不同類型的用戶的模型對象。

  1. 聯繫人對於某些用戶類型是可選的或不需要的。
  2. 地址中的address2是可選的或對於某些用戶類型不是必需的。

我的想法是讓一個控制器處理多個用戶類型的這個表單/頁面。

  • 如何使用此模型來處理上述場景?
  • 如何爲此模型編寫驗證程序?

回答

1

您可以根據需要使用一種形式。

一些註釋可以直接添加到字段中,例如@NotNull地址1,如果它是所有用戶類型的強制性。

的你使用類應該有標記註釋@Valid驗證地址和聯繫

public class User { 
    ... 
    @Valid 
    private Address address; 
    @Valid 
    private Contact contact; 
    ... 
} 

,你可以定義類級別約束註釋和/或交叉參數約束。 (見the example)。

所以你的用戶類應該用自定義約束進行註釋,你可以檢查用戶類型和每種類型檢查是否提供並正確填寫必要的字段。

+0

感謝您的優秀解決方案。你有什麼建議,如果模型屬性中的對象不存在,如何隱藏JSP中的表單元素?例如,如果地址對象沒有添加到用戶對象我希望JSP中的地址部分被隱藏? – Vel

+1

您可以使用 StanislavL

+0

謝謝。它確實有幫助。 – Vel

相關問題