Richfaces 4 a4j: действие commandLink не запускается в rich: popupPanel - PullRequest
5 голосов
/ 01 августа 2011

Кажется, у меня проблема, когда у меня есть a4j: commandLink для rich: popupPanel, но действие не запускается.Xhtml выглядит следующим образом:

<rich:popupPanel id="rate-panel" modal="true" height="444" width="780" top="60" show="false" onmaskclick="#{rich:component('rate-panel')}.hide()" styleClass="cs-modal">
  /**Some html here**/    
  <a4j:commandLink immediate="false" action="#{venueScore.up}" render="rate-panel" styleClass="rate love">
    <span>Love it</span>
  </a4j:commandLink>    
  /**Some more html here**/    
</rich:popupPanel>

И управляемый компонент выглядит следующим образом:

@Named("venueScore")
@ViewScoped
public class VenueScoreManager extends BaseManager implements Serializable {
  public void up() {
    System.out.println("TEST");
    //Do something
  }
}

Я создал управляемый компонент @ ViewScoped.

У меня также естьпопытался добавить <h:form> вокруг commandLink, однако, это делает даже меньше, чем без него.Я действительно думаю, что это потому, что commandLink находится внутри <h:form>, в котором находится ссылка, открывшая popupPanel.

В любом случае, может кто-нибудь указать мне, почему действие не запускается?

Ответы [ 3 ]

8 голосов
/ 02 августа 2011

Хорошо, поэтому я исправил это сам. После обхода я понял, что мне просто нужно добавить <a4j:region> вокруг содержимого в <rich:popupPanel>. Итак, теперь xhtml выглядит примерно так:

<rich:popupPanel id="rate-panel" modal="true" height="444" width="780" top="60" show="false" onmaskclick="#{rich:component('rate-panel')}.hide()" styleClass="cs-modal">
  <a4j:region id="panel-region">
    /**Some html here**/    
    <a4j:commandLink immediate="false" action="#{venueScore.up}" render="panel-region" styleClass="rate love">
      <span>Love it</span>
    </a4j:commandLink>    
    /**Some more html here**/    
  </a4j:region>
</rich:popupPanel>
0 голосов
/ 12 июля 2014

У меня была такая же проблема, a4j: commandLink работал только после первого щелчка .... поместите поппанель в форму и добавьте domElementAttachment ...

<h:form id="myform">
    <rich:popupPanel id="pop" domElementAttachment="form">
        ...
        <a4j:commandLink />
        ...
    </rich:popupPanel>
</h:form>
0 голосов
/ 01 августа 2013

Я знаю, что это старый вопрос, но, поскольку у меня была точно такая же проблема, я потратил много времени, прежде чем ее исправить, возможно, это поможет кому-то еще.Сначала я попробовал решение, предложенное выше, но оно не сработало.Наконец, я нашел этот поток: Проблемы закрытия rich: popupPanel через условие show, RF 4.0

И я добавил атрибут domElement в свое всплывающее окно:

<rich:popupPanel 
id="newMailPopup" 
**domElementAttachment="form"** 
...>

Итеперь мой a4j: commandLink работает отлично: -)

...