JSF 2.2 ajax没有刷新multipart / form-data

时间:2013-09-08 13:51:46

标签: ajax jsf refresh multipartform-data

我有一个问题,我简化了代码来向您展示。

        <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。为了让它再次工作,我必须刷新网站。我做错了什么?

1 个答案:

答案 0 :(得分:1)

好的,我设法解决了这个问题。好吧,说实话,不是我,而是jsf程序员。我发现当你使用

时会发生这种情况
 <h:form enctype="multipart/form-data">

用ajax。这是错误,它已经修复了一段时间。您只需更新您的jsf版本。 http://javaserverfaces.java.net/ - 我有2.2.3版本,这是目前最新版本。

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