Jsf 如何将多个inputText映射到数组属性?
我希望用户为JSF的inputText组件输入一个或多个名称。 所以我想到了这样一个托管bean:Jsf 如何将多个inputText映射到数组属性?,jsf,jsf-2,Jsf,Jsf 2,我希望用户为JSF的inputText组件输入一个或多个名称。 所以我想到了这样一个托管bean: public class MyBean { private String[] names; public String[] getNames() { return names; } public void setNames(String[] names) { this.names = names; } } 但是,如何将
public class MyBean {
private String[] names;
public String[] getNames() {
return names;
}
public void setNames(String[] names) {
this.names = names;
}
}
但是,如何将JSF的inputText组件映射到此数组属性?首先,需要在bean的(post)构造函数中保留数组。例如
public MyBean() {
names = new String[3];
}
然后,您可以通过硬编码索引访问它们
<h:inputText value="#{myBean.names[0]}" />
<h:inputText value="#{myBean.names[1]}" />
<h:inputText value="#{myBean.names[2]}" />
不要使用var
属性
<ui:repeat value="#{myBean.names}" var="name">
<h:inputText value="#{name}" />
</ui:repeat>
当您提交表单时,它将不起作用,因为
String
没有值的setter(getter基本上是toString()
方法)。我使用上面的示例就是这样使用的