我需要创建一个输入表单,允许用户为特定属性输入任意数量的值。多值属性的文本输入
我尝试了几种方法,所有这些方法似乎都有各种级别的故障。最新的模型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