无法从 <ui:repeat> var status 设置 List<String> 值

Cant set List<String> value from <ui:repeat> var status

在我的 xhtml 中,我定义了一个 inputText 变量,我想从中为列表中的特定字段设置特定值。每次我单击确认并调试我的代码时,该值都返回为“”(我在我的 init 函数中设置)。我还尝试将我的 inputText 值硬编码为 dashboardFilterDialogBean.dashboardObject.texts[0] ,就像我定义的列表中的唯一项目一样,但仍然没有结果。我的控制台出现 0 个异常

Xhtml

<p:dialog id="dashboardFilterDialog">
    <h:form id="dashboard_filter_dialog_form">
        <ui:repeat value="#{dashboardFilterDialogBean.dashboardObject.texts}" varStatus="loop">
            <p:row>
                <p:column>
                    <h:outputText value="Text" />
                </p:column>
                <p:column>
                    <p:inputText value="#{dashboardFilterDialogBean.dashboardObject.texts[loop.index]}" />
                </p:column>
            </p:row>
        </ui:repeat>
    </h:form>
    <f:facet name="footer">
        <h:form id="submit_dashboards_dialog_form">
            <p:commandButton id="confirm_button" actionListener="#{dashboardFilterDialogBean.confirm()}" />
        </h:form>
    </f:facet>
</p:dialog>

豆子

public class DashboardFilterDialogBean {

    private DashboardObject dashboardObject;

    @PostConstruct
    public void init() {
        dashboardObject.getTexts().add("");
    }

    public void confirm() {
        for (String txtValue : getDashboardObject().getTexts()) {
            if (!txtValue.equals("")) {
                ...;
            }
        }
    }

    public DashboardObject getDashboardObject() {
        return dashboardObject;
    }

    public void setDashboardObject(DashboardObject dashboardObject) {
        this.dashboardObject = dashboardObject;
    }
}

对象

public class DashboardObject {

    private List<String>            texts;

    public DashboardObject() {
        texts = new ArrayList<String>();
    }

    public List<String> getTexts() {
        return texts;
    }

    public void setTexts(List<String> texts) {
        this.texts = texts;
    }
}

我已通过将 <p:ajax event="blur" process="@this" /> 添加到我的 inputText 中解决了我的问题,因此它会在我单击确认之前保存该值。所以最后的代码看起来像这样:

<p:inputText value="#{dashboardFilterDialogBean.dashboardObject.texts[loop.index]}" />
    <p:ajax event="blur" process="@this" />
</p:inputText>