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

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-05 00:24:10

问题


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?


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



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



回答3:


I know that it's an old question but as I had exactly the same problem, I spent a lot of time before fixing it, maybe it will help someone else. First, I tried the solution proposed above but it did not worked. Finally, I found this thread: Issues closing rich:popupPanel via show condition, RF 4.0

And I added the domElement attribute to my popup:

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

And now, my a4j:commandLink works perfectly :-)



来源:https://stackoverflow.com/questions/6903488/richfaces-4-a4jcommandlink-action-not-firing-in-richpopuppanel

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!