First, you need to preserve the array in bean's (post)constructor. E.g.
public MyBean() {
names = new String[3];
}
Then, you can either just access them by an hardcoded index
<h:inputText value="#{myBean.names[0]}" />
<h:inputText value="#{myBean.names[1]}" />
<h:inputText value="#{myBean.names[2]}" />
or use <ui:repeat>
with a varStatus
to access them by a dynamic index
<ui:repeat value="#{myBean.names}" varStatus="loop">
<h:inputText value="#{myBean.names[loop.index]}" />
</ui:repeat>
Do not use the var
attribute like
<ui:repeat value="#{myBean.names}" var="name">
<h:inputText value="#{name}" />
</ui:repeat>
It won't work when you submit the form, because String
doesn't have a setter for the value (the getter is basically the toString()
method).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…