LINUX.ORG.RU

История изменений

Исправление memnek, (текущая версия) :

Как оказалось, не всё так просто. Из js нельзя вызвать какой-либо метод бина даже через всякие jsf.ajax.request. Приходится извращаться:

    <h:outputScript>
        gantt.attachEvent("onTaskSelected", function(id, item) {
            document.getElementById('#{someData.clientId}').value = id;
            document.getElementById('#{invisibleClickTarget.clientId}').click();
        });
    </h:outputScript>
    <h:form id="hiddenForm" style="display: none;">
        <h:inputHidden id="someData" binding="#{someData}" value="#{customEventBean.task}" />
        <h:commandButton id="invisibleClickTarget" binding="#{invisibleClickTarget}">
            <f:ajax execute="@form" listener="#{customEventBean.listener()}"/>
        </h:commandButton>
    </h:form>

Ну а в соответствующем бине собственно реализация слушателя.

Исходная версия memnek, :

Решение, кому интересно

Как оказалось, не всё так просто. Из js нельзя вызвать какой-либо метод бина. Приходится извращаться:

    <h:outputScript>
        gantt.attachEvent("onTaskSelected", function(id, item) {
            document.getElementById('#{someData.clientId}').value = id;
            document.getElementById('#{invisibleClickTarget.clientId}').click();
        });
    </h:outputScript>
    <h:form id="hiddenForm" style="display: none;">
        <h:inputHidden id="someData" binding="#{someData}" value="#{customEventBean.task}" />
        <h:commandButton id="invisibleClickTarget" binding="#{invisibleClickTarget}">
            <f:ajax execute="@form" listener="#{customEventBean.listener()}"/>
        </h:commandButton>
    </h:form>

Ну а в соответствующем бине собственно реализация слушателя.