Как заставить a4j: commandLink выполнять действие и показывать модальную панель?

JSF 1.2, Richfaces 3.3.3,

У меня работает следующий код, чтобы показать richfaces:modalpanel:

<ui:repeat id="albums" var="listvalue" 
    value="#{MyBean.getImagelist()}">
    <a4j:commandLink id="link" reRender="panel">
        <h:graphicImage id="image" url="My_image.jpg"/>
        <rich:componentControl for="panel" attachTo="link" operation="show"
            event="onclick"/>
    </a4j:commandLink>
</ui:repeat>

Это работает, и отображается модальная панель, но мне не удалось вызвать метод, который находится в MyBean, как мне это сделать?

ОБНОВЛЕНИЕ 1

Я забыл упомянуть, что мне нужно передать <f:param> на это действие

ОБНОВЛЕНИЕ 2

В соответствии с просьбой, вот точный код, который у меня есть:

<ui:repeat id="al11" var="albumslistvalue1" 
value="#{AlbumDetailBean.getAlbumImagesList()}">
  <a4j:commandLink id="link" action="#{AlbumDetailBean.mudaIdatual()}" 
    reRender="panel"
    oncomplete="javascript:Richfaces.showModalPanel('panel');" >
    <a4j:actionparam name="idfotoatual" value="#{albumslistvalue1.id}" />
    <h:graphicImage id="image" 
    url="#{albumslistvalue1.albumimagename}"/>
   </a4j:commandLink>
</ui:repeat>

person Community    schedule 16.08.2012    source источник
comment
Где вы планируете выполнять свой метод управляемого компонента, из commandLink/commandButton внутри modalPanel или в commandLink, сгенерированном <ui:repeat>?   -  person Luiggi Mendoza    schedule 17.08.2012
comment
из <a4j:commandLink id="link">, сгенерированного <ui:repeat>   -  person    schedule 17.08.2012


Ответы (1)


Я полагаю, вы хотите, чтобы действие вызывалось при нажатии на ссылку. Итак, попробуйте следующее:

<a4j:commandLink id="link" action="#{myBean.myAction}" reRender="panel"
    oncomplete="Richfaces.showModalPanel('panel');">
      <a4j:actionparam assignTo="#{yourParam}" value="#{yourParamValue}"/>
    <h:graphicImage id="image" url="My_image.jpg"/>
</a4j:commandLink>

ОБНОВЛЕНИЕ: добавлен параметр по запросу.

person dcernahoschi    schedule 16.08.2012
comment
Я думал, что это сработает, но панель не появляется и действие не вызывается, также я отредактировал вопрос - person ; 17.08.2012
comment
Я обновил ответ. Странно, что не работает. Вы получаете какие-либо исключения? Можете ли вы показать свой точный код? - person dcernahoschi; 17.08.2012
comment
Все еще не работает, должно быть, это глупая ошибка, обновление вопроса с фактическим кодом - person ; 17.08.2012
comment
Возможная проблема? url={# ...} вместо #{...}/ Вам также понадобится атрибут assignTo, например: assignTo=#{yourBean.someProperty} - person dcernahoschi; 17.08.2012
comment
URL-адрес был введен с ошибкой, в коде это правильно, добавлено assignTo, не работает. Я отлаживаю и вижу, что действие вообще не вызывается - person ; 17.08.2012