我需要創建一個輸入表單,允許用戶爲特定屬性輸入任意數量的值。多值屬性的文本輸入
我嘗試了幾種方法,所有這些方法似乎都有各種級別的故障。最新的模型bean看起來像:
public class Product {
private String name;
private ArrayList<String> tags = new ArrayList(5);
{
tags.add(""); //seed with 1 non-null element
}
...accessors...
}
輸入字段類似:
<h:dataTable id="tags" value="#{product.tags}" var="tag">
<h:column><h:inputText id="t" value="#{tag}"></h:inputText></h:column>
我的計劃是允許用戶使用JavaScript來添加根據需要添加表單字段。
這種類型的設置給了我一個'Target Unreachable'錯誤。我錯過了什麼?
我現在的問題是標記的setter不會被調用。奇怪的是,名字的確定者。
我使用JSF 1.1的WebSphere 6.1
BalusC,在你的幫助下,我已經能夠走得更遠一點。但是,我遇到了一個新問題。我已經刪除了支持通過JS添加文本字段的邏輯,唯一的事情就是弄清楚爲什麼託管視圖沒有被表單更新。我已經在上面相應更新了。 – Sean 2010-04-26 15:42:28
長話短說:http://balusc.blogspot.com/2006/06/using-datatables.html#AddNewRowsToDatatable – BalusC 2010-04-26 15:47:58
該部分有意義,但是我仍然無法獲取託管bean中的setTags以執行(setName執行) 。我在日誌中看不到任何例外;並且請求確實包含我爲標籤輸入的內容。 我對jsf請求生命週期的理解是,視圖首先被恢復(執行獲取託管bean),然後應用請求值(執行集合)。我覺得我錯過了一些東西,但不知道是什麼。 呈現的輸入標記看起來像這樣: – Sean 2010-04-26 21:22:58