У меня есть следующая страница JSF, чтобы попробовать стандартный JSF2.2.1 и Primefaces4 CommandLink:
<h:form id="test3" binding="#{test3.hf}">
<h:commandLink value="Test3" action="#{test3.print('PROVA.....')}" />
<br />
<p:commandLink value="PFtest" action="#{test3.print('PROVA.....')}" />
</h:form>
... и относительный управляемый компонент ViewScoped:
@ManagedBean(name="test3")
@ViewScoped
public class Test3 implements Serializable {
HtmlForm hf;
public Test3() {
super();
}
public HtmlForm getHf() {
return hf;
}
public void setHf(HtmlForm hf) {
this.hf = hf;
}
public String print(String text) {
System.out.println(text + " " + System.currentTimeMillis());
System.out.println(hf.getChildren().size());
return null;
}
}
Странное поведение заключается в том, что при нажатии на одну из двух CommandLink метод печати вызывается два раза !!!
Проблема не возникает, если я избегаю привязки формы или добавляю дополнительная привязка к компонентам CommandLink.
О чем вы думаете ? Спасибо.
@RequestScoped
приводит к желаемому поведению... - person Xtreme Biker   schedule 02.01.2014@RequestScoped
работает нормально, .... но мне нужен@ViewScoped
:-) - person NCister   schedule 02.01.2014UIViewRoot#queueEvent
вызывается дважды, поэтому два события ставятся в очередь для выполнения, и, следовательно, метод вызывается. Было бы неплохо узнать, произойдет ли это и с MyFaces... - person Xtreme Biker   schedule 02.01.2014