2010-09-13 89 views
3

我在寫一個應用程序,它充當使用JSF 2.0和Hibernate的管理面板。我有一個JSF表單的JSP頁面,這些表單使用javascript動態添加元素(jQuery是特定的)。所以我不能假設我需要處理多少數據。我有一個託管bean,但我不知道如何爲我想要保存在數據庫中的動態字段添加getter和setter。該解決方案似乎使用列表而不是單個元素,但是如何使用JSF元素的值標記?難道是這樣的:JSF 2.0將動態表單保存到數據庫中

<h:form> 
<h:inputText id="i1" value="#{UserBean.list}" /> 
<h:inputText id="i2" value="#{UserBean.list}" /> 
<h:commandbutton id="submit" value="Submit" action="#{UserBean.submit}"/> 
</h:form> 

和管理bean:

@ManagedBean(name="UserBean") 
@RequestScoped 
public class UserBean { 

    public UserBean() { 
     List<String> list = null; 


} 
    public List getList() { 
    return list; 
} 
    public List setList(List<String> newlist) { 
    list = newList; 
} 

} 

然而,上面的代碼似乎並不正確,肯定是不行的。我需要將兩個或更多的inputtext值綁定到同一個列表。有沒有人有任何建議如何解決它?提前致謝。 Regards, sass。

回答

5

您不能直接使用jQuery動態添加JSF組件。所有jQuery都可以遍歷和操作客戶端的「普通香草」HTML DOM樹。它完全沒有JSF組件樹的概念,因爲它是在服務器端生成和維護的。 JSF反過來對「簡單的香草」jQuery/JavaScript完成的HTML DOM樹的狀態變化一無所知,因爲它不會在服務器端向JSF通知有關更改。 JSF依靠JSF組件樹來處理表單提交,而不是HTML DOM樹。

您想要使用JSF動態更改JSF組件樹。由於這將是一個漫長的故事,詳細解釋,這裏有一些鏈接,我回答之前得到類似的問題,你開始: