2015-11-03 41 views
0

假設我們有以下的這些實體的名單檢票形式(代表是:N的關係,與其他列在連接表):所有可用值

public class User { 
    private String name; 
    private List<Login> logins; 
} 

public class Login { 
    private User user; 
    private Website website; 
    private String login; 
} 

public class Website { 
    private String name; 
    private List<Login> logins; 
} 

我想創建一個包含一個User編輯表單每個現有網站的登錄輸入字段(以便所有現有網站都在表格中)。例如,具有定義的2個網站(網站1,網站2),我想看看:

form

我的問題是實現在提交表單的以下行爲:如果登錄輸入字段填充的一個網站,它應該被添加到user1的登錄,如果它是空的,它不應該被添加/刪除。

我使用User模型(用於用戶名)和網站的字段使用ListView創建了表單,該模型支持所有登錄模型(直接從數據庫中取得)。這使得我的表單看起來像預期的那樣,但行爲不存在,因爲網站模型與User模型無關。你推薦的方法是什麼?

+0

一個登錄多個網站的權利?如果是這樣,那麼你必須改變模型的方法? – soorapadman

+0

不,這是每個網站的一個登錄信息。 – marvin82

+0

對我來說你的模型似乎沒問題。如果你有編碼分享的問題。將整理出 – soorapadman

回答

0

更改ListViewPropertyListView訣竅。模型得到適當更新,因此我可以在onSubmit()中進行任何所需的後處理。使用ListView,表單呈現正常,但登錄輸入字段中的更改被忽略。

1

使用所有可能的Login對象的列表的支持,即現有的Login對象,如果它存在和虛擬/空/新Login對象爲各Website爲它不存在的ListView

然後在表單提交中保存那些具有非-null和非空登錄字段的Login對象。

您可以創建一個bean,而不是直接使用Login對象,但它會以同樣的方式工作。

如果您也想刪除Login對象,其用戶刪除登錄價值,創造一些方法,可以在其中查看Login對象之前(即其login場是notempty一次)保存和刪除對象如果它現在是空的。

+0

嗨,當然我使用ListView建議(更新我的問題)。問題是,在onSubmit()我無法從輸入字段中看到更新的登錄值(用戶的名稱更新很好)。 – marvin82

+0

啊,然後你通過描述你遇到的問題來澄清你的問題。目前,您的問題總體上需要採取推薦方法,而不是爲了解決特定問題。 是表單的一部分嗎? – Buurman