我有一个问题,我简化了代码来向您展示。
<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。为了让它再次工作,我必须刷新网站。我做错了什么?
答案 0 :(得分:1)
好的,我设法解决了这个问题。好吧,说实话,不是我,而是jsf程序员。我发现当你使用
时会发生这种情况 <h:form enctype="multipart/form-data">
用ajax。这是错误,它已经修复了一段时间。您只需更新您的jsf版本。 http://javaserverfaces.java.net/ - 我有2.2.3版本,这是目前最新版本。
重新启动glassfish并重新部署应用程序后,一切正常。