JSF2.2.1 + привязка формы + проблема ViewScoped

У меня есть следующая страница 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.

О чем вы думаете ? Спасибо.


person NCister    schedule 01.01.2014    source источник
comment
Почему у вас есть две commandLinks с одним и тем же действием?   -  person Andres    schedule 01.01.2014
comment
Это простой тестовый пример, чтобы попробовать либо стандартный компонент Mojarra, либо компонент Primefaces (... но поведение такое же...). Метод печати используется только для отладки действий.   -  person NCister    schedule 02.01.2014
comment
Это интересный вопрос. У меня также происходит с Mojarra 2.1.26. Однако изменение области действия bean-компонента на @RequestScoped приводит к желаемому поведению...   -  person Xtreme Biker    schedule 02.01.2014
comment
Да, @RequestScoped работает нормально, .... но мне нужен @ViewScoped :-)   -  person NCister    schedule 02.01.2014
comment
Кажется, это ошибка. По какой-то причине UIViewRoot#queueEvent вызывается дважды, поэтому два события ставятся в очередь для выполнения, и, следовательно, метод вызывается. Было бы неплохо узнать, произойдет ли это и с MyFaces...   -  person Xtreme Biker    schedule 02.01.2014
comment
Теперь я могу добавить дополнительный вклад: я только что протестировал те же случаи, используя MyFaces 2.2, и он отлично работает! (без двойного вызова). Я определенно думаю, что это ОШИБКА Мохарры :-(   -  person NCister    schedule 02.01.2014
comment
Не могли бы вы отслеживать это как новую проблему? Сам ничего похожего не нашел... Обратите внимание, что это происходит и с веткой 2.1.x. java.net/jira/secure/IssueNavigator.jspa   -  person Xtreme Biker    schedule 02.01.2014


Ответы (1)


Решено Моджаррой 2.2.5. Спасибо за участие.

person NCister    schedule 31.03.2014