Hi,
Below is some simple code showing the problem. A list of items are displayed using a <a4j:repeat>. Each item has a name (string). It will display its name and allow the user to set it using an <h:inputText> and a <a4j:commandButton>. However, even though the action method will be called, the setter is never called. Any idea? Thanks!
f1.xhtml: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:a4j="http://richfaces.org/a4j"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Insert title here</title> </head> <body> <a4j:repeat value="#{foo.list}" var="item"> <h:outputText id="n" value="#{item.name}" /> <h:form> <h:inputText value="#{item.name}" /> <a4j:commandButton action="#{item.action}" reRender="n" /> </h:form> </a4j:repeat> </body> </html> Foo.java: package test; import java.util.ArrayList; import java.util.List; import javax.webbeans.Named; import javax.webbeans.SessionScoped; @Named @SessionScoped public class Foo { private List<Item> list; public Foo() { list = new ArrayList<Item>(); list.add(new Item()); list.add(new Item()); list.add(new Item()); } public List<Item> getList() { return list; } } public class Item { private String name = "Hi"; public String action() { System.out.println("action called"); return null; } public String getName() { return name; } public void setName(String name) { System.out.println("setter called"); this.name = name; } }
Hi,
It's the same problem as described here: https://jira.jboss.org/jira/browse/RF-5773