p:remoteCommand未执行/未调用

时间:2016-01-07 08:59:40

标签: jsf primefaces liferay

我遇到了以下问题:

Primefaces remoteCommand没有执行,是否依赖于我的portlet的生命周期?

 <h:form id="controllayer">
 .
 .
 .
 <p:remoteCommand name="updatePageId" actionListener="#{formView.updatePageId}" />
 </h:form>
 <script>   
    var pageID;

    Liferay.on('eventFire', function(event)
     {
      console.log("Recieved");
      console.log(event.name);
      pageID = event.name;
      update();
     });

    function update() {

      console.log("Recieved PageID: " + pageID);
      updatePageId({newPageId: pageID});
    }

 </script>

我也尝试过没有参数,但即使这样也行不通。

@SessionScoped
@ManagedBean(name="formView")
public class MainViewBean implements PagesUploadCallback, PageUploadCallback, PageActionCallback, Serializable
{
 .
 .
 .
 public void updatePageId()
 {
  LOG.info("Update Page ID");
  String pageIdString = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("newPageId");
  long pageId = Long.valueOf(pageIdString);
  LOG.debug("Setting Page: " + pageId);
  pageService.setActivePage(pageId);
 }
.
.
.
}

永远不会调用我的JavaCode。

1 个答案:

答案 0 :(得分:2)

<p:remoteCommand name="docheck" 
         process="@form,box1,box2"
         update="box1,box2"
         action="#{testBean.myAction()}" />

这是您需要如何更改代码的示例。这样可以解决您的问题。有关更多参考,请参考以下链接:

  

https://forum.primefaces.org/viewtopic.php?p=61733&sid=bf526834599e119a2d8a4e0f9a6989fb#p61733