【发布时间】:2012-08-09 13:05:22
【问题描述】:
我正在尝试使用 primefaces 创建带有标签的动态输入文本字段。
就像我单击添加按钮一样,它应该继续添加标签和输入文本字段。
我可以使用什么组件?谢谢。
【问题讨论】:
标签: java jsf primefaces
我正在尝试使用 primefaces 创建带有标签的动态输入文本字段。
就像我单击添加按钮一样,它应该继续添加标签和输入文本字段。
我可以使用什么组件?谢谢。
【问题讨论】:
标签: java jsf primefaces
您可以为此使用 <h:dataTable> 和 @ViewScoped bean。
例如
<h:form>
<h:dataTable id="inputs" value="#{bean.inputs}" var="input">
<h:column>
<p:outputLabel for="input" value="#{input.label}" />
</h:column>
<h:column>
<p:inputText id="input" value="#{input.value}" />
</h:column>
</h:dataTable>
<p:commandButton value="Add" action="#{bean.add}" update="inputs" />
</h:form>
与
@ManagedBean
@ViewScoped
public class Bean implements Serializable {
private List<Input> inputs;
@PostConstruct
public void init() {
inputs = new ArrayList<Input>();
}
public void add() {
Input input = new Input();
input.setLabel("Input " + (inputs.size() + 1));
inputs.add(input);
}
public List<Input> getInputs() {
return inputs;
}
}
和
public class Input {
private String label;
private String value;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
您当然也可以使用<p:dataTable>,但这只会增加一些花哨的外观,这对于这个特定的用例来说可能是不必要的。
【讨论】: