0

我有一个问题,我简化了代码给你看。

        <h:form enctype="multipart/form-data">
            <h:panelGroup id="images">
            <h:inputText id="auctionImage" value="#{testBean.nowy}"/>
            <h:commandButton value="Add">
                <f:ajax execute="auctionImage" render="images"/>
            </h:commandButton>


                <ui:repeat value="#{testBean.elements}" var="oneImage">
                    <h:outputText value="#{oneImage.title}" />
                </ui:repeat>
            </h:panelGroup>
        </h:form>

这是我的主要 Bean

@SessionScoped
@ManagedBean
public class TestBean {
    private List<Element> elements;
private String nowy;

    public String getNowy() {
        return nowy;
    }

    public void setNowy(String nowy) {
        Element el = new Element();
        el.setTitle(nowy);
        if(elements==null) elements = new ArrayList<>();
        elements.add(el);
        this.nowy = nowy;
    }
    public List<Element> getElements() {
        return elements;
    }

    public void setElements(List<Element> elements) {
        this.elements = elements;
    }

}

这是元素类

@ManagedBean
public class Element {
    private String title;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

}

每次单击“添加”按钮并使用 ajax 打印时,我都想填充列表。该列表已填充,但 ajax 仅第一次刷新 panelGroup。为了让它再次工作,我必须刷新网站。我做错了什么?

4

1 回答 1

1

好的,我设法解决了这个问题。好吧,老实说,不是我,而是 jsf 程序员。我发现它发生在您使用时

 <h:form enctype="multipart/form-data">

用阿贾克斯。这是错误,前段时间已修复。你只需要更新你的 jsf 版本。 http://javaserverfaces.java.net/ - 我得到了目前最新的 2.2.3 版本。

重新启动 glassfish 并重新部署应用程序后一切正常。

于 2013-09-09T18:34:15.843 回答