我似乎遇到了一个问题,我在rich:popupPanel上有一个a4j:commandLink,但是操作没有触发。 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>

托管bean如下所示:
@Named("venueScore")
@ViewScoped
public class VenueScoreManager extends BaseManager implements Serializable {
  public void up() {
    System.out.println("TEST");
    //Do something
  }
}

我已经创建了托管bean @ViewScoped。

我也尝试过在commandLink周围添加<h:form>,但这甚至比没有它的情况还要少。我实际上认为这是因为commandLink在<h:form>内部,打开popupPanel的链接位于其中。

无论如何,有人能指出我为什么不采取行动的方向吗?

最佳答案

好的,所以我自己修复了。搞砸之后,我得出结论,我只需要在<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>

关于jsf-2 - Richfaces 4 a4j :commandLink action not firing in rich:popupPanel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6903488/

10-09 00:15