Richfaces 4 a4j:commandLink action not firing in rich:popupPanel

10,861

Solution 1

Ok, so I fixed it myself. After screwing around I worked out that I just need to add an <a4j:region> around the content in the <rich:popupPanel>. So now the xhtml looks something like this:

<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>

Solution 2

I had the same problem, a4j:commandLink only worked after first click.... put the poppanel inside a form and add domElementAttachment...

<h:form id="myform">
    <rich:popupPanel id="pop" domElementAttachment="form">
        ...
        <a4j:commandLink />
        ...
    </rich:popupPanel>
</h:form>
Share:
10,861
Aaron Chambers
Author by

Aaron Chambers

Ruby (and Java when I have to) developer out to make the web awesome!

Updated on June 14, 2022

Comments

  • Aaron Chambers
    Aaron Chambers about 2 years

    I seem to be having a problem where I have an a4j:commandLink on a rich:popupPanel but the action is not firing. The xhtml looks as follows:

    <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>
    

    And the managed bean looks as follows:

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

    I have made the managed bean @ViewScoped.

    I have also tried adding an <h:form> around the commandLink however, this does even less than without it. I actually think that is because the commandLink is inside the <h:form> in which the link that opened the popupPanel sits.

    Anyway, can someone please point me in the direction of why the action not fire?

  • Amr H. Abd Elmajeed
    Amr H. Abd Elmajeed about 12 years
    You cannot believe how much time i spent trying to find this answer! How did you reach this solution ?
  • Aaron Chambers
    Aaron Chambers about 12 years
    @AmrH.AbdelMajeed - I probably spent just as much time as you. Trial and error in the end I think solved it ;)