2012-12-10 45 views
2

我有一个文本框,最终用户必须输入应该呈现的文本框的数量。根据输入的数字,文本框的数量必须以行格式动态呈现。文本框在JSF 2.0中呈现

同样在新呈现的行格式化文本框中,输入的值在转到下一页时必须用正确的后备bean标识。

任何有关从何处开始或如何实现此目的的建议?

回答

3

您可以使用<h:inputText>来要求最终用户输入。

<h:inputText value="#{bean.number}" /> 

您可以使用<h:commandButton>来让用户提交表单。

<h:commandButton value="Submit" action="#{bean.submit}" /> 

您可以使用List<T>有一个项目的集合。

private List<Item> items; 

public void submit() { 
    items = new ArrayList<Item>(); 

    for (int i = 0; i < number; i++) { 
     items.add(new Item()); 
    } 
} 

您可以使用<h:dataTable>将它按行显示。

<h:dataTable value="#{bean.items}" var="item"> 
    <h:column> 
     <h:inputText value="#{item.value}" /> 
    </h:column> 
</h:dataTable> 

提交的值将刚好在items的最后。

+0

你的答案是伟大的,但假设如果最终用户想要动态地呈现5个文本框,那么如何绑定那些动态呈现的所有动画5 的值。 –

+0

呃,答案已经显示出来了。输入值绑定到迭代项目。 – BalusC

+0

为什么我得到这个:“value =”#{item.value}“:Target Unreachable,标识符'item'解析为null”错误。 –