このフォームを処理したい (valueChangeListener は実際には有効ではありません)。
これはバック Bean です。
public class TestBean extends PrivateBaseBean implements Serializable {
private List<String> strings;
@PostConstruct
public void init() {
strings = new ArrayList<String>();
strings.add("");
strings.add("");
strings.add("");
}
public void saveAction(ActionEvent event) {
StringBuilder textToShowInMessage = new StringBuilder();
for (String string : strings) {
textToShowInMessage.append(string);
textToShowInMessage.append("; ");
}
FacesMessage msg = new FacesMessage(super.getBundle().getString(
textToShowInMessage.toString()), "");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
getters... setters...
ビュー:
....
<h:form>
<ui:repeat var="string" value="#{testBean.strings}">
<h:inputText value="#{string}" />
<br />
</ui:repeat>
<p:commandButton value="#{msg.save}"
actionListener="#{testBean.saveAction}" icon="ui-icon-disk"
update="@form" />
</h:form>
...
フォームがバック Bean ストリング リストで処理されると、常に空白になります。
値変更リスナーなしで、フォーム入力の内部反復を処理する方法は?
いくつかのスクリーンショットがあります:
action または actionListener を on にすると、同じ問題が発生します。