У меня есть ah: inputText, у которого есть событие onBlur, которое переопределяет группу панелей с помощью a4j: repeat, которое будет иметь номер h: inputText, введенный в первый inputText.Поля inputText создаются, но фокус находится не на первом поле в a4j: repet, потому что фокус был установлен до повторного рендеринга panelGroup после повторного рендеринга, когда фокус потерян.
XHTMLкод
<a4j:outputPanel id="PageARoot">
<a4j:keepAlive beanName="simpleBean" />
<h:outputText value="Infants:" />
<h:inputText id="text" value="#{simpleBean.size}">
<a4j:support event="onblur" action="#{simpleBean.action}"
reRender="MyContent" />
</h:inputText>
<h:panelGroup id="MyContent">
<a4j:repeat id="list" value="#{simpleBean.list}" var="item" rowKeyVar="rowIndex">
<h:inputText name="test#{rowIndex}" id="test" value="#{rowIndex}" />
</a4j:repeat>
</h:panelGroup>
</a4j:outputPanel>
Боб
public class SimpleStringBean {
private List list;
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
private int size;
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
@PostConstruct
public void initialize(){
System.out.println("Initalize");
list = new ArrayList();
list.add(new Long(0));
size = 1;
}
private String text;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public void action(){
System.out.println("Action: " + text);
list = new ArrayList();
for(int i = 0; i < size; i++){
list.add(new Integer(0));
}
}
}